C語言實驗——單詞統計(字元陣列的應用)
阿新 • • 發佈:2019-01-02
C語言實驗——單詞統計
Problem Description
從鍵盤輸入一行字元(長度小於100),統計其中單詞的個數,各單詞以空格分隔,且空格數可以是多個。
Input
輸入只有一行句子。僅有空格和英文字母構成。
Output
單詞的個數。
Sample Input
stable marriage problem Consists of Matching members
Sample Output
7
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int i, len, num, t; char a[101]; memset(a, 0, sizeof(a)); gets(a); len = strlen(a); num = 0; t = 0; for(i = 1; i < len; i++) { if(a[i] == ' ') t = 0; //當字元為空格時,令t=0 else if(t == 0 && a[i] != ' ') {//當t=0即當前字元之前存在空格,且當前字元不為空格時執行此if t = 1;//令t=1,防止下次進入此if重複計數 num++; } } printf("%d\n", num); return 0; }
此題我一開始寫的程式碼入下方是所示:
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int i, len, num; char a[101]; memset(a, 0, sizeof(a)); gets(a); len = strlen(a); num = 0; if(a[0] == '\0') num = 0; //如果沒輸入單詞,則num = 0,否則進入迴圈計算單詞量 else { num = 1;//如果a[0]不為'\0',則有單詞輸入且它為第一個 for(i = 1; i < len; i++) { if(a[i - 1] == ' ' && a[i] != ' ') { num++; }//如果a[i - 1]為空格,且a[i]不為空格,則出現新單詞 } } printf("%d\n", num); return 0; }
這樣寫的錯誤的,加入一開始是這樣輸入:
stable marriage problem Consists of Matching members
最前面是存在空格的話就會出現問題,所以必須改為上方有標記變數的寫法,並且上方那種有標記變數的寫法在很多程式中都有所應用