要使用C語言來計算單詞數量其實方法也非常簡單,我就簡單的說一下原理吧。
以下面這個句子為例:
"Wewon't,Mother,"saidGruffoandMuffo."We'lltakegoodcareofDido."
我們能夠發現,一個英語的句子除了標點符號外,每個單詞之間都是有空格的,除了'這個標點符號。而針對'這個符號,我們會出現兩種情況,一種是won't和we'll認為是一個單詞;另一種是won't認為是willnot,we'll認為是wewill,也就是兩個單詞。
這里,我們先默認使用第一種,也就是won't是一個單詞。這樣的話,先去掉除了'以外的所有標點符號,包括,.!?":()等等。
C語言我也不是很熟,去掉字符串中指定字符的代碼我就隨便貼了一個:
#include<stdio.h>
#include<string.h>
voiddeletechar(chara[],charc)
{
inti,j;
for(i=0,j=0;*(a+i)!='\0';i++)
{
if(*(a+i)==c)
continue;
else
{
*(a+j)=*(a+i);
j++;
}
}
*(a+j)='\0';
}
intmain()
{
chara[100],c;
scanf("%s%c",a,&c);
deletechar(a,c);
printf("%s",a);
return0;
}
OK,去掉這些標點以后,上面的那個句子就會變成這樣。
Wewon'tMothersaidGruffoandMuffoWe'lltakegoodcareofDido
這個時候,我們就通過空格,把字符串變成一個個單詞組成的數組。這時候就簡單了,遍歷這個數組,如果單詞不是Stop,那么單詞的數量就+1,如果是Stop,那么就停止并且返回當前以及累加的單詞數。
使用特定字符分割字符串的代碼我就不去貼了,也不難,隨便百度一下就能找到。
那么假設我們需要考慮'符號,也就是說,won't是兩個單詞,我們怎么辦呢?
其實也簡單,就是我們在遍歷單詞的時候去判斷一下這個單詞里面是不是有'符號,如果有,就+2,如果沒有就+1。
當然,在英文的文章里面可能不一定全部如此簡單,可能還有-符號的存在。而-其實是一種連接符,并沒有任何意義,是可以去掉的,因此可以在最初刪除字符的時候一并刪除了。
大概的思路就是這樣了,希望對你有點用處。