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

2021-07-01 01:18:29 字數 2186 閱讀 4493

1樓:匿名使用者

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

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

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

2樓:匿名使用者

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

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

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

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

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

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

3樓:匿名使用者

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

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

c語言 統計一個英文句子中的單詞個數

4樓:印假鈔換貞操

存在兩個問題:

1、單詞

與單詞之間的空格不止一個,如there   is2、單詞與單詞之間只有標點符號分隔,沒有空格,如will,there建議可使用 char *strtok(char s, const char *delim); 函式

例如:char a = "where there is will, there is a way.";

char *p = strtok(a, " ,.!");

int count = 0;

if (p != null)

while ((p = strtok(null, " ,.!")) != null)

//包含,**沒有測試過,不一定要採納我,我是來學習的。

5樓:匿名使用者

是否存在連續多個空格的情況(程式中沒考慮)?是否存在以非空格分隔單詞的情況(比如,;!.... 等,程式中沒考慮)?

另外相同的單詞只算一個,還是出現幾次算幾個?

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

6樓:武荊軻

#include "stdio.h"

main()

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

}其原理很簡單:

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

7樓:匿名使用者

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

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

一、演算法設計:

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

8樓:

#include

#include

main()

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

9樓:痞孓寶

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

#include "stdio.h"

main()

問個問題c語言的關於if語句中條件判斷是賦

複製表示式x 5本身是有值的,這個值等於左值。也就是說x 5這個式子的值是x,也就回是5。而x 5這個式子的答值是5不為零,就是真的,還會執行k 2。一般來說,if後面語句是禁止使用單等於號,也就是賦值號的,就是為了防止出錯。980515024 這位回答的有錯誤。if x 5 編譯是不會報錯的。如果...

C語言問題if語句巢狀C語言中三個if語句的巢狀怎理解

要點是1 if與else的成對關係依照就近原則2 if與else的成對關係遇到花括號時,就近原則找相成對花括號3 區域性 塊一定要加括號 if a 1 if b 1 printf yes n a 1且b 1時執行else printf no n a 1且b 1時執行 用括號括起來更容易理解 if a...

c語言程式設計列印圖案第一行兩個相距空格第二行相距空格第三

include include int main getch return 0 用c語言的迴圈結構設計程式設計列印下面要求圖案第一行1個 第二行3個 第三行5個 第n行2n 1個 等 這是直角三角形的 include stdio.h define n 8 這裡代表列印幾行void main 列印直角...