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

時間 2023-06-05 15:45:06

1樓:自我程式設計

isspace() 函式用來檢測乙個字元是否是空白符。標頭檔案:。

在預設情況下,空白符包括:空格、水平製表符 、換行符、垂直製表符 、換頁、 回車。

一、你第乙個寫法有錯誤(int a;這裡定義時沒有給初值,a是隨機值,不能直接拿來迴圈累加),且這樣寫a累加的是空白符數不是單詞數。

二、加布林變數目的是單詞計數:

inword初始false。遇到單詞首字母,置true。遇到單詞後的第乙個空白符則置false

if (!isspace(ch) &inword)表示遇到乙個單詞的首字母(當前字元非空白且前乙個字元是空白時,單詞數量words累加1)。

if (isspace(ch) &inword)表示遇到乙個單詞後的第乙個空白(當前字元是空白且前乙個字元是非空白時)

連續多個空白,多餘空白符會被忽略。

ps:單純isspace來判斷,計算單詞數量還是有缺陷的。比如單詞之間有標點符號或非字母字元,也需要單獨判斷。

2樓:格里程式設計辦公技巧

第一種方法沒有考慮單詞間有多個空格的情況,第二種情況考慮了。多出來的bool變數就是為了判斷是不是多個空格連在一起。

3樓:i地小激動很喜

:c語言檢測單詞數:第一種方法沒有考慮單詞間有多個空格的情況,第二種情況考慮了。多出來的bool變數就是為了判斷是不是多個空格。

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

4樓:武荊軻

#include ""

main()

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

其原理很簡單:

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

5樓:匿名使用者

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

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

一、演算法設計:

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

6樓:痞孓寶

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

#include ""

main()

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

7樓:貿夏真唐諾

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

voidmain()

charstring[100];

inti,num=0,word=0;

charc;

printf("請輸入乙個英文句子:")

gets(string);

for(i=0;(c=string[i])!0';i++)if(c=='

word=0;

elseif(word==0)

word=1;

num++;

printf("

該英文句子由%d個單詞組成。,num);

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

c語言陣列判斷單詞個數問題

8樓:黃山

**換了個判斷地方的位置,邏輯結構發生了變化,舉例來說,a[30] =daa bca aaaaa";

方法一要讀取到b時才計數第乙個num

方法二在讀取d時就開始計數了,計算單詞格式,還是選擇方法二好些,另外,前幾樓的能不能敬業點,人家問問題不是問錯誤,你們把**copy 執行,直接出結果,別人都不會嗎?只是一些小失誤而已,問題一點沒解決還評頭品足的。

9樓:忘川漱石

我試驗過了,結果一樣。

但是你的第二段**num++後面少了個;號。

10樓:cl荼靡

num++後面少個分號,規範錯誤。

關於c語言統計輸入單詞數量的問題!!!

11樓:匿名使用者

只有if單獨使用沒有else單獨使用,單獨使用else會出現編譯錯誤,會出現提示沒有匹配的if。所以if不能去掉。

12樓:宇哥想飛

這句話有問題應該是 else if(state ==out)

不能去掉if因為else後面是不跟表示式的,

怎麼判斷字串中單詞個數(用c語言)

13樓:育知同創教育

#include

void main()

printf("there are %d words in the line.",num);

定義乙個陣列來儲存字串,然後就從陣列的下標為0開始判斷到n,判斷有多少個字母。

14樓:匿名使用者

如果各單詞間沒有空格或其他標誌符,是很難判斷的。可能你要在你的程式裡放一部英文本典,然後再查表決定有多少個單詞了。

有空格和符號就好辦了。對每個字母迴圈判斷,只要不是字母就給計數器加1,最後的計數就是單詞個數。

判斷是不是字母可以用比較字母整形值的辦法,我記得好象大寫的字母在23到48之間,小寫的在51到76之間。可能不對,你查一下就知道了。

只要不在這兩個數字範圍內就不是字母。

另外對於特殊符號比如單引號,你可以查出它的數值,在判斷的時候如果是單引號就跳過不計數。

c語言問題 統計單詞個數

15樓:沒錢用了就出家

#include

int main()

if(ch1!=32)

num++;

printf("%d",num);

return 0;

已經測試 你可以直接拿去用。

16樓:匿名使用者

首先申明,我現在沒有編譯器,我先寫個,如果有問題,我明天再除錯一下。

#include

#define no 0

#define yes 1

void main()

printf("%d",n);

17樓:網友

int fun(char a,int n)elseif(a[i+1]!=空格')j++;

return j;

邏輯上是這樣,具體細節因為c語言很長時間沒有用了,樓主自己補充下吧,錯了大家別笑話。

18樓:匿名使用者

找到第乙個不是空格的字元作為第乙個單詞開始,找到下乙個空格該單詞結束。

返回第一句開頭。

c語言統計單詞問題

19樓:匿名使用者

首先,eof需要ctrl+z然後回車觸發而不只是回車。

其次,單詞個數達到2^32個基本只有一種可能就是讀取檔案。

最後,沒金幣只能幫你到這裡了,(;

20樓:章氏不錯

輸出【單詞的個數】。然而並沒有看出你統計了某個單詞的個數的意思。單詞個數統計需要建立詞典。

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

include include int main puts s printf d num return 0 66666順心 include include int is same char str,char s char p char str2 100 int flag 0 strcpy str2,...

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

考驕 用指標將兩個字串連結接起來,前一個while迴圈,確定s1字串走完,第二個while開始將s1的逐個字元複製給s1走完,也就是末尾,這樣就可以把字串都匯入到s1中 最後一個空寫的應該寫return s1 長魚修韋 很久沒碰這東西了。我來解釋下 第一個while的迴圈是為了讓指標指向第一個字串的...

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

自我程式設計 列印輸出乙個ok。因為前面迴圈for語句有分號結束。所以後面的printf語句不在迴圈內,不受迴圈語句影響。 理佑平鄲胭 結果是22 7 7 8 22 你可以將 i i i i是先 1再計算,還有這裡的運算順序是從左到右,所以應該是7 7 i 14 8 22 前兩個相加時,i先加1,加...