1. 程式人生 > >輸入一串字串,統計單詞的個數

輸入一串字串,統計單詞的個數

問題描述:

輸入一串字串,輸出其中有多少個單詞,例如:I am a boy,輸出4

方法一:

解題思路:
1、建立一個字元型別的陣列,將輸入的字元儲存在字元陣列中,每次從字元陣列中讀取一個位元組,判斷其是否為空格,如果遇到空格,則表示其是一個單詞;
2、建立兩個變數,用num統計單詞的個數,word標記單詞是否為新單詞的狀態;
3、如果遇到空格,將word置成0,如果是一個單詞,則word一直置成1;

程式碼實現:

#include<stdio.h>
void main()
{
    char string[100];
    char c;
    int i=0
, num = 0, word = 0; //word為0,即使開頭就為空格,認為是新單詞的開始 gets(string); while ((c = string[i++])!='\0') { if (c == ' ') //為空格,就是代表新單詞開始 { word = 0; } else if (word == 0) //c既不等於空格又是新單詞的開始 { num++; //單詞個數加1
word = 1; //word=1 就不是新單詞 } } printf("%d\n", num); }

執行結果:
這裡寫圖片描述

方法二:

解題思路:
統計一個字串空格的個數,然後加1;(不建議使用,不嚴謹,沒考慮兩個單詞之間有多個空格)

程式碼實現:

#include<stdio.h>
void main()
{
    char string[100];
    char c;
    int i = 0, num = 0;    
    gets(string);
    while
((c = string[i++]) != '\0') { if (c == ' ') { num++; } } num++; printf("%d\n", num); }

執行結果:
這裡寫圖片描述