看板 C_and_CPP 關於我們 聯絡資訊
problem: 算一算每行有幾個字(word)。 範例輸入: Hello everybody!! This is school principal speeking. 範例輸出 : 2 5 我的程式 #include <stdio.h> #include <stdlib.h> int main() { char c[50]; int i,h; while(scanf("%s",&c)!=EOF) {i=0,h=0; while(c[i]!='\0') { if(c[i]==32) {h++;} i++; } printf("%d",h+1); } system("PAUSE"); return 0; } 結果如果是2 他會輸出 11 如果字數是5 輸出11111 怎會這樣 如果我把32改成'+'來取代空白就沒問題了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.193.78.189
grayyoung:這個排版真的相當痛苦 = = 08/01 11:27
legnaleurc:你不該用 &c 的, c是個陣列 08/01 11:29
jeremyhcw:抱歉我改成 c 之後 還是沒變 08/01 11:30
legnaleurc:你每掃到一個字就印一次,就會變這樣啊= = 08/01 11:32
legnaleurc:而且不用這麼麻煩吧 08/01 11:32
QQ29:while(scanf("%s",&c)!=EOF) 這行要改掉 邏輯問題 08/01 11:34
grayyoung: if(c[i]==32) 也需要修改吧 08/01 11:37
QQ29:scanf 把你輸入的str1 str2分兩次處理 所以根本不會有' '32 08/01 11:38
QQ29:的字元出現 第一次跑就是"str1\0" 所以她是印 0+1=1 08/01 11:38
can15air:最近剛好看到 -> strtok()這個函數,我想應該能處理這個뀠 08/02 14:33
can15air:問題.我是在課本上看到是包含在<string.h> 08/02 14:34
can15air:http://tinyurl.com/ptg6ry 08/02 14:37