c語言編寫程式,在一維陣列裡輸入一句英文,統計該句子裡出現的單詞個數

2021-03-19 21:49:51 字數 6926 閱讀 3018

1樓:

宣告一個較大的char型陣列,待輸入完成後依次檢查陣列元素,除第一個單詞可能需要個別處理外,其餘以空格後跟字母或其它字元後跟字母的就認為是一個單詞,累加計數即可。**如下:

int main(int argc,char *argv)

執行樣例如下圖:

2樓:匿名使用者

#include

main()

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

3樓:

int countword(lpcstr strfilter)else

nret = 1;

while(1)

}error_out:

return nret;

}int main()

這個是比較簡單的實現,沒有考慮亂輸一堆標點符號的問題,如果要做好點,就檢查出每個被空格分開的子串,然後對每個子串用正規表示式匹配,剔出非英文單詞的子串

4樓:匿名使用者

include

int main()

5樓:匿名使用者

沒用過,不過你可以嘗試一下統計空格符號和逗號,句號,當然,句子得很標準才行,一個單詞後面跟一個空格或者逗號句號

6樓:匿名使用者

是統計單詞個數還是統計字母的個數?

c語言編寫一個程式,在一維陣列裡輸入一句英文,統計該句子裡出現的單詞個數?

7樓:匿名使用者

#include

main()

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

c語言程式設計,輸入一個英文句子,統計單詞的個數。

8樓:凌亂心扉

#include

#include

#include

main()

//以下統計句子中的英文單詞個數;

for(i=0;(c=string)!='\0';i++)//for迴圈語句,遍歷句子中的每個字元;初始化i=0;若字元c!='\0',即未到達結束符'\0'的話,執行i++;

}printf("\n");

printf("您輸入的這句英文句子中共包含%d個英文字元,%d個英文單詞。\n",sum,num);

}示例:輸入語句:hello!my friend,how are you?(注意單詞的前後有空格)

擴充套件資料:

include用法:

#include命令預處理命令的一種,預處理命令可以將別的源**內容插入到所指定的位置;可以標識出只有在特定條件下才會被編譯的某一段程式**;可以定義類似識別符號功能的巨集,在編譯時,前處理器會用別的文字取代該巨集。

插入標頭檔案的內容

#include命令告訴前處理器將指定標頭檔案的內容插入到前處理器命令的相應位置。有兩種方式可以指定插入標頭檔案:

1、#include《檔名》

2、#include"檔名"

如果需要包含標準庫標頭檔案或者實現版本所提供的標頭檔案,應該使用第一種格式。

如下例所示:

#include//一些數學函式的原型,以及相關的型別和巨集

如果需要包含針對程式所開發的原始檔,則應該使用第二種格式。

採用#include命令所插入的檔案,通常副檔名是.h,檔案包括函。

9樓:

#include

int main()

count+=1; //單詞數=空格數+1printf("the number of words are:%d\n",count);

return 0;  //main()函式是有返回值的}

用c語言編寫一段程式,題目是輸入一段英文,統計其中的字母,單詞和句子的個數,謝謝! 5

10樓:我們出發吧

統計字母,意bai思就是看當du前的字元ascii碼是否zhi介於a—z或a—z之間;

統計單詞

dao,意思就是看回當前的字元ascii碼是否為空格答,因為空格意味著單詞的結束;

統計句子,意思就是看當前的字元ascii碼是否為句號;

ascii碼錶如下:

11樓:匿名使用者

#include

void main()

12樓:俎玉芬督胭

非要限制輸入的大小麼?過會兒給你

內發容個

#include

#include

voidmain()

printf("lowercase:%d\tuppercase:%d\tdigit:

%d\tspace:%d\tothers:%d\n",lowercase,uppercase,digit,space,others);}

c語言實現,統計一句英文句子中某個單詞出現的次數。

13樓:

#include

int findword(char*,char*);

void main()

int findword(char* allstr,char* findstr)

}allstr++;

}return wordnum;}以上

程式在vc6.0執行通過。

14樓:匿名使用者

用string不行嗎?

查詢is,判斷is前後字元是否為字母,若都不是,則計數器自增

15樓:夢想窗外

#include

#include

void main()

else

j = 0;

if (j == l2)

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

getchar();

getchar();}

編寫一函式,對儲存在陣列中的英文句子,統計其中的單詞個數。單詞之間用空格分隔。c語言

16樓:成功者

#include main() } printf("there are %d words in the line.\n",num); }

c語言:試程式設計序,對輸入的一英文句子分別統計出其中由單個字母,兩個字母,三個字母等組成的單詞個數

17樓:匿名使用者

我用來了檔案操作,自己新建一個源data.in檔案,bai和編譯成的duexe放在同一個目

zhi錄下

code:

# include

# include

# include

char s[100];

int data[40];

int main()

測試資料:

edd ecc ad aa a

結果:dao

18樓:匿名使用者

#include

void main()

if(l[i] != ' '||l[i] == ' ') //當元素不是空格或元素是空格時 m自加1 m代表的是字元總數

m++;

if(l[i] != ' ') //當元素不是空格時 那就是字母了 所以b自加1 b代表的是字母個數

b++;

if(l[i] == ' ') //當元素等於空格時 就讓c自加1 所以才代表的是空格數。

c++;

i++;

}printf("\n 其中的單詞總數為 %d \n ",n);

printf("\n 其中的字母總數為 %d \n ",b);

printf("\n 其中的空格總數為 %d \n ",c);

printf("\n 其中的字元總數為 %d \n ",m);

getch();

}本題用到陣列 要多看看陣列用法

c程式 輸入一個英文句子,統計各單詞出現的次數,並按要求排序。要求如下,謝謝。

19樓:匿名使用者

試編寫**如下:

#include

#include

#include

struct word

words[500];

int sum;

void chuli(char s)

}  if(flag==0)

}void paixu1()}}

void paixu2()}}

}int main()

printf("該文章共有:%d個單詞\n",sum);

paixu1();

printf("\n按單詞字典順序升序排列:\n");

for(i=0;i

實際執行截圖:

20樓:匿名使用者

'把下面**複製到窗體,新增1個list 和一個***mand按鈕執行就可以了,和一個文字框,資料輸入在文字框裡

private type english

word as string

count as long

end type

'判斷是不是英文

private function en(byval s as string) as boolean

if s = "" then en = false: exit function

s = lcase(s)

for i = 1 to len(s)

a = asc(mid(s, i, 1))

if a < 97 or a > 122 then en = false: exit function

next

en = true

end function

'統計陣列內各個英文出現次數

private function tongji(byval t_txt as string) as english()

s = split(t_txt, " ")

n = 0

dim english() as english

redim english(0)

for i = 0 to ubound(s)

if s(i) <> "" and en(s(i)) = true then

temp = false

for j = 0 to ubound(english)

if english(j).word = "" then

english(j).word = s(i): english(j).count = 1: exit for

elseif english(j).word = s(i) then

temp = true: english(j).count = english(j).count + 1: exit for

end if

next

if temp = false then

redim preserve english(n): english(n).word = s(i): english(n).count = 1: n = n + 1

end if

end if

next

tongji = english

end function

private sub ***mand1_click()

dim e() as english

e = tongji(text1)

clsfor i = 0 to ubound(e)

if e(i).count > 0 then list1.additem e(i).word & " 出現過: " & e(i).count & " 次"

next

end sub

21樓:匿名使用者

#include

#include

#include

#include

#include

#include

#define n 50

using namespace std;

int cmp(const pair& x, const pair& y)

//vector裡實現單詞出現次數排序

void sortmapbyvalue(map& tmap,vector>& tvector)

//將map元素轉存為vector

int main()

}++i;}}

cin.clear();//清除輸入流,不然,結束上面大while迴圈時輸入的ctrl+z

//會影響到整個程式,導致程式結束退出,無法再進行下面輸入操作

cout<<"1:按出現次數降序排列, 2:按單詞字典順序升序排列"<>k;//選擇輸出方式

if(k==2){//map中預設已自動按key(即單詞)排序,直接輸出即符合字典順序

for(it=v.begin();it!=v.end();++it)

cout<<(*it).first<<","<<(*it).second<> tvector;

sortmapbyvalue(v,tvector);

for(int i=0;i

c語言程式設計試編寫程式輸入abc值

include int main if max printf d n max return 0 include int main 編寫一個c程式 輸入a b c三個值,輸出其中的最大者。方法1 利用選擇結構設計 include int main 輸出最大值 return 0 123456789101...

用C語言編寫程式,輸入整數,輸出09各數字在該整數

include include include int main 用遞迴寫了個小程式,測試是可行的。算是提供個參考吧 include int a 10 void tongji int inum else void main include void main printf d t d t d t d...

C編寫程式輸入Iamastudent要求輸出I

1 gets str1 2 str1 i 0 3 str2 i j 4 j 5 str2 i j 0 0 1 2 3 4 5 c語言的輸入 i am a student輸出 i am student 儲存到陣列裡面去,比較連續3個字元啊,當遇到 a 時候給刪掉 a 或者 a 就行了 初學者應該 來是...