C語言,計算單詞數目,C語言統計單詞個數

時間 2021-10-14 20:24:19

1樓:匿名使用者

我用檔案寫了一個,你的想法太複雜了

#include

#include

int main()

ch=fgetc(fp);

while(ch!=eof)

last=ch; //最後一個字元

ch=fgetc(fp);

}if(isalpha(last)!=0)n++; //如果最後一個字元是字母

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

fclose(fp);

return 0;}

2樓:

沒細看你的**。據題意,覺得你寫複雜了,而且統計了重複單詞。下面提供一個作參考……

//#include "stdafx.h"//vc++6.0加上這一行.

#include "stdio.h"

#include "string.h"

#include "stdlib.h"

void main(void)

fflush(stdin);

for(word=i=0;a[i];i++)}printf("%d\n\ndo it again...\n",word);}}

3樓:匿名使用者

你沒看到是不重複的單詞嗎?重點在這裡。

c語言統計單詞個數

4樓:向日葵

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));

5樓:風若遠去何人留

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

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

一、演算法設計:

核心思想是通過一個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;}

6樓:匿名使用者

#include

int main(void)

else

word =1 ;

c=getchar();

}if ( word )

count++ ;

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

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

7樓:風雷九州

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);

}**見上

8樓:匿名使用者

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

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

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

9樓:寒寒家

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

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

10樓:匿名使用者

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

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

11樓:李楠焱

#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);

這個是比較簡單的寫法。

12樓:

#include

#include

#include

int main()

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

for(i = 0;i

return 0;}

13樓:李卓霖首席男友

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

void main()

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

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

14樓:鹿溪生

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

#include

void main()

n=i;

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

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

k=1;

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

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

15樓:

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

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

16樓:李卓霖首席男友

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

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

#include

void main()

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

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

17樓:匿名使用者

給字元變數c2賦值為空格

18樓:匿名使用者

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

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

19樓:武荊軻

#include "stdio.h"

main()

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

}其原理很簡單:

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

20樓:匿名使用者

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

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

一、演算法設計:

核心思想是通過一個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()

21樓:

#include

#include

main()

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

22樓:痞孓寶

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

#include "stdio.h"

main()

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

說祺阿雅唱 include stdio.h main printf d n num 史朝東樂安 include include intmain printf 單詞個數為 d n number return0 include include int main while a i a a i a a i...

C語言 簡單的數值統計,C語言問題 簡單統計

簡單的寫了一下 希望採納。include int main else if min 0 printf d 2lf min,summin min elseprintf 0 if max 0 printf d 2lf max,summ max elseprintf 0 return 0 c語言 prob...

c語言程式設計計算 ,C語言程式設計計算 1 1 2 1 3 1 4 1 99 1 100 ,直到最後一項的絕對值小於10 4為止

12一 include void main 1.include include include int main else while fabs 1.0 i 0.0001 fabs 求浮點數絕對值函式 return 0 2.include include int main else return 0...