1. 程式人生 > >輸入一行字元,統計其中有多少個單詞,單詞之間用空格分隔開

輸入一行字元,統計其中有多少個單詞,單詞之間用空格分隔開

這道題目出自譚浩強的C語言程式設計 P165 的例6.8
個人覺得這道題目看似簡單,但是其中原理理解消化得需要點時間,因為本章的字元陣列相對於前邊的章節,又上升了一個難度。
先來看思路:
這道題的Key point就是怎樣確定“出現了新的單詞"
可以先對字元進行逐字檢查,如果出現地新單詞,設立一個變數num=0,讓其+1,進行統計。
而如何統計出現新單詞,想像一下,輸入一個i am a boy,其中能夠證明新的單詞是不是隻有空格?所以將空格設立為判定新單詞的標準,並且定義兩個新變數字元變數c,word,如果出現了空格(也就是c==0),並將word=0。但如果word=0,c!=0,也就是上一個字元為0,下一個字元不等於0,表示出現了新單詞,這時候就可以將num+1了,並且也讓word=1;
word=0,代表前一個字元是空格;
word!=0,代表前一個字元為非空格。

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

#include<stdio.h>
int main()
{
    char string[81];                          
    int i,num=0,word=0;                
    char c;
    gets(string);
    for(i=0;((c=string[i])!='\0');i++)
        if(c==' ') word=0;
        else if(word==0)
        {
            word=1;
            num++;
        }
    printf("there are %d words in this line.\n",num);
    return 0;
}