[問題] 關於字串sort

看板C_and_CPP (C/C++)作者 (paris)時間16年前 (2009/07/15 12:40), 編輯推噓3(300)
留言3則, 3人參與, 最新討論串1/1
小弟胡思亂想想出一個字串要排序的問題 但是怎麼跑卻都跑不出來 題目是自行輸入8個字串 然後比較大小做排序 限制是"宣告時使用char *str[8]",而不使用二維陣列 #include<stdio.h> #include<stdlib.h> #include<string.h> int main(void) { char *str[8]; int i,j; int k,l,z; int flag; char temp[10]; for(i=0;i<8;i++){ scanf("%s",&str[i]); } for(j=0;j<8;j++) { printf("%s\t",&str[j]); } for(k=0;k<8;k++){ for(l=0;l<7;l++){ flag=strcmp(str[l],str[l+1]); if(flag>0) { strcpy(temp,str[l]); strcpy(str[l],str[l+1]); strcpy(str[l+1],temp); } } } printf("\n"); for(z=0;z<8;z++){ printf("%s\t",&str[z]); } system("pause"); return 0; } 基本上在讀入8個字串及輸出那前兩個迴圈都沒問題 雖然我還是不很清楚為什麼要用&str[i]及&str[j] 而不是用*str[i]或是str[i] 然後再k,l迴圈那就出了問題... 如果照上面&str[i]那邊要使用"&"才能以字串方式呈現的話 在比較大小時應該也是同樣型態要用"&" 如&str[l] 但如果用&的話則錯誤更多 整個指來指去都已經不知道指到哪兒了@@ 請板上眾高手幫忙debug一下 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.231.52.104

07/15 12:44, , 1F
你的 str[?]=new char[?] 沒有寫 會error吧
07/15 12:44, 1F

07/15 20:46, , 2F
C 用 malloc or calloc
07/15 20:46, 2F

07/16 18:26, , 3F
你的str[i]每個都沒配置空間 這是最大問題 先處理吧
07/16 18:26, 3F
文章代碼(AID): #1ANLsoLx (C_and_CPP)
文章代碼(AID): #1ANLsoLx (C_and_CPP)