輸入一串字串,統計單詞的個數
阿新 • • 發佈:2019-01-23
問題描述:
輸入一串字串,輸出其中有多少個單詞,例如: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);
}
執行結果: