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

時間 2021-12-19 14:27:10

1樓:匿名使用者

#include

#include

int main()

puts(s);

printf("%d", num);

return 0;}

2樓:66666順心

#include

#include

int is_same(char*str,char*s)char*p;

char str2[100];

int flag=0;

strcpy(str2,s);//將內容複製到另乙個陣列中p=strtok(str2," ");//目的是為了避免strtok函式對原來字串的破壞!

while(p!=null)

if(strcmp(p,str)==0)//比較是否相同!

flag=1;

break;

p=strtok(null," ");

if(flag==0)

return 0;

else

return 1;

int getcount(char*s)

int i=0,j=0,length=0;

char str[20],str1[100];//將前乙個單詞儲存起來,以便與後面的單詞比較看是否一樣

int word_count=0;//統計單詞個數int k=0;//每個單詞的字元數量!

while(s[i])

if(s[i]!=' ')

if(word_count==0)

word_count++;

j=i;

for(k=0;kstr1[k]=s[k];

str1[k]='\0';

while((s[j]!=' ')&&(s[j]!='\0'))str[length]=s[j];

j++;

length++;

str[length]='\0';

if((word_count!=0)&&(!is_same(str,str1)))

word_count++;

i+=length;

else

i++;

length=0;

return (word_count-1);//減去第一次統計重複的int main(void)

char str[100];

int count=0;

printf("input a string :");

gets(str);

count=getcount(str);

printf("不同單詞的數量:%d\n",count);

return 0;

3樓:匿名使用者

簡單,讀乙個就把對應單詞的計數加一

4樓:匿名使用者

怎麼判斷是不是單詞?

查詞典嗎?

c語言問題:一行語句中不同單詞個數統計

5樓:匿名使用者

如果只要思路的話,可以:

用切割函式strtok 對這一段話進行切割,得到的單詞儲存在乙個二維char陣列裡面,並計算出所有單詞的個數num,然後將第乙個單詞和後面num-1個單詞比較,有重複的,將num-1,最後可以得到單詞個數。

**太複雜了,沒心情寫!!

6樓:匿名使用者

乙個strng陣列用來儲存已經擷取的單詞

使用for each(char ch in aa)+if(ch==(" "))來實現檢測整個句子的迴圈

當檢測到空格時使用substring命令和indexof檢測上個空格出現位置來擷取當前單詞。

使用for迴圈將擷取的單詞對比陣列中的已有單詞,相同的nop,不同的新增倒陣列中。

最後檢查陣列的長度就可以,sizeof aa/sizeof aa[0].

對比時候可以提取乙個字元,將其轉化為int型來實現ascii碼的比對,相等或者+32都視為相等。

7樓:匿名使用者

思路:空格作為分隔,遇到空格設為技術狀態,非空格則不計數,設定相應語句跳過連續空格或非空格,將單詞轉化為統一格式,運用strcmp函式比較

具體**你還是自己寫吧!

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

8樓:

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

c語言統計單詞個數

9樓:說祺阿雅唱

#include

"stdio.h"

main()

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

10樓:史朝東樂安

#include

#include

intmain()

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

return0;}

11樓:

#include

#include

int main()

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

//記錄乙個單詞

num++;}}

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

return 0;}

12樓:匿名使用者

int decede(char str)

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

//記錄乙個單詞

num++;}}

return num;}

13樓:風若遠去何人留

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

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

一、演算法設計:

核心思想是通過乙個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語言統計單詞個數

14樓:向日葵

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

15樓:風若遠去何人留

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

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

一、演算法設計:

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

16樓:匿名使用者

#include

int main(void)

else

word =1 ;

c=getchar();

}if ( word )

count++ ;

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

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

17樓:風雷九州

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

}**見上

18樓:匿名使用者

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

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

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

19樓:寒寒家

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

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

20樓:匿名使用者

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

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

c語言檢測單詞數問題?C語言統計單詞個數問題!

isspace 函式用來檢測乙個字元是否是空白符。標頭檔案 在預設情況下,空白符包括 空格 水平製表符 換行符 垂直製表符 換頁 回車。一 你第乙個寫法有錯誤 int a 這裡定義時沒有給初值,a是隨機值,不能直接拿來迴圈累加 且這樣寫a累加的是空白符數不是單詞數。二 加布林變數目的是單詞計數 in...

c語言 陣列未知個數 怎麼宣告,C語言 陣列未知個數 怎麼宣告

風若遠去何人留 c語言在陣列個數未知的情況下,根據應用情況不同,有三種方式。1,陣列元素總數未知,但是需要儲存的內容是已知的。其實這是一種變相的已知個數,只是程式設計者不去計算總個數,把這個工作交給系統來做。這時可以通過陣列個數留空,顯式初始化陣列進行宣告。比如char s this is a te...

用C語言編寫“背單詞程式”,用C語言編寫如下程式?

董俊錕 include include include struct word 定義一個word的結構體,裡面的兩個成員分別放英語單詞和相應的漢語翻譯 int point 0 統計分數的 int count1 0 測試的次數 void tianjia struct word str 100 int ...