c语言统计26个英文字母各出现个数,网上答案汇总与分析——【输入一串英文,统计各单词出现的个数】...
該樓層疑似違規已被系統折疊?隱藏此樓查看此樓
#include
#include
void main()
{
char english[200]={'\0'}; //即要輸入的英文。
char allwords[50][50]={'\0'}; //每一個單詞,即輸入的英文中按空格劃分成的每一個單詞。
int i,j, q,p=0, k=0,t,m, num[50]; // 通過p值的變化判斷連續三個0的出現,num用來統計各不相同的單詞的個數。 k、t為allwords[k][j]下標,m用來統計allwords的不相同單詞的總數。
//-----------------------------------------------------------------------------//
for ( i=0; i<50; i++) num[i]=1; //將每一個單詞的數值初始化為1。
//-----------------------------------------------------------------------------//
gets(english); //輸入英文。
//-----------------------------------------------------------------------------//
for ( i=0; english[i]!='0'||english[i+1]!='0'||english[i+2]!='0'; ) //當【連續3個0】出現時跳出
{
while( english[i]==' ' ) i++; //如果遇到空格,則跳到它的下一位。
t=0; //用于do—while循環的控制。
do
{
allwords[k][t]=english[i]; //將英文的各個位的字母分段賦給各層allwords。即最后是按空格劃分的每一個單詞都依次賦給allwords。
i++, t++;
if ( english[i]=='0' && english[i+1]=='0' && english[i+2]=='0' ) p=1; //通過把p的值變為1,作為連續三個0出現標記。
} while ( english[i]!=' '&& p==0 ); //當english[i]不為空格且【連續】三個0為出現,一、兩個0出現不影響。
k++,i++;
if( p==1 ) break; //連續三個0出現,跳出for循環。
else continue; //連續三個0未出現,則繼續for循環。
}
//-----------------------------------------------------------------------------//
for(i=0;i
{
for(j=i+1;j
if( strcmp (strlwr(allwords[i]), strlwr(allwords[j]) )==0 && num[i]!=0 ) //類似allwords[0]與all我認識[1][2][3][4]……
{ num[j]=0; //num用來將重復的單詞的個數設置為0。
num[i]++; //用來將相同的單詞數加1。如:allwords[0]與allwords[1][2]相同,則將[0]的單詞數加2,[1][2]的單詞數設置為0
} //設置為0主要是為了在輸出時不將其輸出。。
}
//-----------------------------------------------------------------------------//
for(i=0;i
{
if( num[i]!=0 ) //接上循環,如果發現[1][2]對應的單詞數為0,則不將其輸出。。
{
printf( "%-20s %2d\n",allwords[i],num[i] );
//循環輸出allwords中單詞數不為0的項,k指allwords中共有單詞的總數。
}
}
//-----------------------------------------------------------------------------//
}
總結
以上是生活随笔為你收集整理的c语言统计26个英文字母各出现个数,网上答案汇总与分析——【输入一串英文,统计各单词出现的个数】...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 摩尔庄园手游什么时候下雨?
- 下一篇: C语言字符串哪个头文件,如果在程序中要使