c語言統計單詞個數,C語言統計單詞個數

2021-07-01 01:19:30 字數 6087 閱讀 4226

1樓:向日葵

q:輸入一串字串,輸出其中有多少個單詞。

eg:good wishes

a:#include #include #define size 20int main()

;    int count=0;

printf("plz input the string\n");

gets(str);

puts(str);    int length = strlen(str);    for (int i=0;i『\0』和『0』的區別:

在c語言中,它們都是字元,都用對應的ascii碼來儲存。例如第一個ascii碼,0,對應字元為(null),就是 『\0』,即空字元。我們在c語言中判斷一個字串是否結束的標誌就是看是否遇到『\0』,如果遇到『\0』,則表示字串結束。

字元『0』和數字0的區別:前者是字元常量,後者是整形常量,但是字元常量可以像整數一樣在程式中參與相關運算。

字串所有字元,如果當前字元不為空,單詞數+1,再巢狀一個while迴圈,判斷當前單詞是否結束。

#include

#include

int count_words(char* s)

{int len=strlen(s);

int count,i;

for(i=0;iif(*(s+i)!=' '){  // 如果當前**不為空

count++;  //單詞數+1

while(*(s+i)!=' '&& ii++;

return count;

int main()

char* a="i love you";

printf("%d",count_words(a));

2樓:風若遠去何人留

根據英語的書寫習慣,在每個單詞前後都會有空格分隔。 所以可以依據空格來劃分單詞。

不過,由於空格可能存在連續多個,所以僅統計空格數是不可以的,需要更復雜一些的演算法。

一、演算法設計:

核心思想是通過一個flag,來確定單詞的起始, 每出現一個單詞的起始,則表示存在一個單詞。 這樣統計出現的單詞起始個數,即可獲得單詞總數。

1、flag初始為1;

2、遍歷字串。

3、對於每個字元,如果出現非空格字元,且flag為1,則為單詞起始,累加計數器。同時賦值flag為0。

4、在flag為0情況下,如果出現空格,表示上一個單詞已經結束,設定flag為1。

5、 遍歷結束後輸出結果。

#include

int main()

}else if(s[i] == ' ')//上一個單詞結束。

flag = 1;

}printf("%d\n", n);//輸出結果。

return 0;}

3樓:匿名使用者

#include

int main(void)

else

word =1 ;

c=getchar();

}if ( word )

count++ ;

/*---------*/

printf("count = %d\n", count);}}

4樓:風雷九州

char c;

int count, word;

int repeat, ri;

scanf("%d", &repeat);

getchar();

for(ri = 1; ri <= repeat; ri++)word = 0;

}else

c = getchar();

}if(word == 1)

printf("count = %d\n", count);

}**見上

5樓:匿名使用者

方案一、用gets(讀入字串,然後逐個字元遍歷該串,並統計出單詞個數。

方案二、用函式getchar()逐個讀入字元,同時判斷單詞個數,直到讀到字元'\n'。

疑問、對於相同的單詞作何處理?

6樓:寒寒家

如果僅僅是統計單詞的個數,那麼可以統計 空格+字母 這種組合出現的次數count(也就是空格的下一個字元是字母)。

對於開頭的單詞,如果前面沒有空格,那麼最終有count+1個字元。

7樓:匿名使用者

#include "stdio.h" main() printf("本行中共有%d個單詞.\n",num); } 其原理很簡單:

對每個字元進行判斷,如果是空格就把變數word標記為0,如果不是空格就判斷word是不是0(即判斷之前有沒有空格),如果存在空格單詞量加1,然後復位word變數為0。就這樣重複,知道句子結束

8樓:李楠焱

#include

main()

char s[81];

int i,num=0;

printf("請輸入一行英文:\n");

gets(s);

if(s[0]!=' ')

num++;

for(i=1;s[i];i++)

if(s[i-1]==' '&&(s[i]<='z'&&s[i]>='a'||s[i]<='z'&&s[i]>='a'))

num++;

printf("本行中共有%d個單詞.\n",num);

這個是比較簡單的寫法。

9樓:

#include

#include

#include

int main()

str[strlen(str)-1] = '\0';

for(i = 0;i

return 0;}

10樓:李卓霖首席男友

相當於空格,可以看一下這個程式(用於統計單詞個數)#include

void main()

printf(" 該英文句子由%d個單片語成。 .\n",num);

}有時為了給變數附一個無意義的初值通常用這個。呵呵

11樓:鹿溪生

最佳答案還是有些不全面的 在最後有空格的時候會有誤這個更全面

#include

void main()

n=i;

for(i=0;i<=n;i++)

}else if(a[i]==' ')

k=1;

}printf("%d\n",m);}

c語言統計單詞個數問題!

12樓:武荊軻

#include "stdio.h"

main()

printf("本行中共有%d個單詞.\n",num);

}其原理很簡單:

對每個字元進行判斷,如果是空格就把變數word標記為0,如果不是空格就判斷word是不是0(即判斷之前有沒有空格),如果存在空格單詞量加1,然後復位word變數為0。就這樣重複,知道句子結束

13樓:匿名使用者

根據英語的書寫習慣,在每個單詞前後都會有空格分隔。 所以可以依據空格來劃分單詞。

不過,由於空格可能存在連續多個,所以僅統計空格數是不可以的,需要更復雜一些的演算法。

一、演算法設計:

核心思想是通過一個flag,來確定單詞的起始, 每出現一個單詞的起始,則表示存在一個單詞。 這樣統計出現的單詞起始個數,即可獲得單詞總數。

1、flag初始為1;

2、遍歷字串。

3、對於每個字元,如果出現非空格字元,且flag為1,則為單詞起始,累加計數器。同時賦值flag為0。

4、在flag為0情況下,如果出現空格,表示上一個單詞已經結束,設定flag為1。

5、 遍歷結束後輸出結果。

二、參考**:

#include

int func(char *s)//計算單詞數函式

}else if(s[i] == ' ')//上一個單詞結束。

flag = 1;

}return n;//返回結果。

}int main()

14樓:

#include

#include

main()

printf("c=%d\n",c);}

15樓:痞孓寶

請問,這樣可不可以實現功能

#include "stdio.h"

main()

c語言統計單詞個數

16樓:說祺阿雅唱

#include

"stdio.h"

main()

printf("%d\n",num);}

17樓:史朝東樂安

#include

#include

intmain()

printf("單詞個數為:%d\n",number);

return0;}

18樓:

#include

#include

int main()

while ( (a[i] >='a' && a[i] ='a' && a[i] <='z') );

//記錄一個單詞

num++;}}

printf("%d\n",num);

return 0;}

19樓:匿名使用者

int decede(char str)

while((str[i]>='a' && str[i]<='z')||(str[i]>='a'&&str[i]<='z'));

//記錄一個單詞

num++;}}

return num;}

20樓:風若遠去何人留

根據英語的書寫習慣,在每個單詞前後都會有空格分隔。 所以可以依據空格來劃分單詞。

不過,由於空格可能存在連續多個,所以僅統計空格數是不可以的,需要更復雜一些的演算法。

一、演算法設計:

核心思想是通過一個flag,來確定單詞的起始, 每出現一個單詞的起始,則表示存在一個單詞。 這樣統計出現的單詞起始個數,即可獲得單詞總數。

1、flag初始為1;

2、遍歷字串。

3、對於每個字元,如果出現非空格字元,且flag為1,則為單詞起始,累加計數器。同時賦值flag為0。

4、在flag為0情況下,如果出現空格,表示上一個單詞已經結束,設定flag為1。

5、 遍歷結束後輸出結果。

#include

int main()

}else if(s[i] == ' ')//上一個單詞結束。

flag = 1;

}printf("%d\n", n);//輸出結果。

return 0;}

c語言統計單詞個數,單詞個數演算法

21樓:

當字元從' '變為字母時或其他字元時word從0變為1,而word從0變為1時就是一個單詞,所以count+1;當字元由非' '變為' '時word從1變為0,準備判斷下一個單詞的出現,即等待字元由' '變為其他字元的出現。這樣最後count就是記錄了單詞的個數,其實就是記錄了字元由' '變為其他字元的次數!

c語言中統計單詞個數的問題

22樓:李卓霖首席男友

相當bai於空格,可以看一下這個程du

序(用zhi於統計單詞個dao數)

#include

void main()

printf(" 該英文句子由%d個單片語成。 .\n",num);

}有時為了給變數附一個無意義的初值通常用這個。呵呵

23樓:匿名使用者

給字元變數c2賦值為空格

24樓:匿名使用者

你說得對,就是相當於'\0'。

c語言迴圈中如何輸出多個陣列,C語言FOR迴圈幾個陣列不同

c語言輸出陣列時,需要根據陣列下標,或者指標移動進行輸出。所以,一般不會用一內個迴圈容輸出多個陣列,這樣操作不方便,而且降低效率。常規的做法是,在多個迴圈中,各自輸出不同的陣列。示例 如下 include int main include void main int y 5 int z 5 int ...

c語言問題,C語言問題C語言問題

沒有縮排,看來比較累 但是輸入一串字元以後要輸入結束標誌eof表示你的輸入結束了 如果你是unix,就用ctrl d,dos就用ctrl z include define maxline 1000 maximum input line length int getline char line,int...

c語言問題,C語言問題C語言問題

把檔案中所有逗號用空格替換。把if fp fopen goods.dat rb null 改成fp fopen goods.dat r null 把 feof fp 換成 0。把 一行刪除。以上3 4也可以在while前新增一行 解決 把printf s,2s,d,d n name,price,in...