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 列印直角...