當前位置:成語大全網 - 漢語詞典 - c語言編程實現統計字符串中英文單詞的數量。並按頻率升序顯示每個單詞的頻率。

c語言編程實現統計字符串中英文單詞的數量。並按頻率升序顯示每個單詞的頻率。

# include & ltstdio.h & gt

# include & ltstring.h & gt

# include & ltstdlib.h & gt

/*定義結構字中存儲的字數和字數*/

typedef結構

{

char * str 1[20];

int strC

} WordAndCnt

//定義total函數計算總字數。

void total(char* str,WordAndCnt* wac)

{

//int sum=0,I;

int i,j;

WAC->;strC = 0;

for(i=0,j = 0;str[i]!= ' # ' & amp& ampStr[i]/*避免忘記輸的尷尬# */;I++) //妳的程序的輸入是否以字符' # '結尾?不管妳寫了什麽,我都會默認到' # '結尾。

{

if((str[I]& gt;= ' a ' & amp& ampstr[I]& lt;= ' z ')| |(str[I]& gt;= ' A ' & amp& ampstr[I]& lt;= ' Z ')//確定起始字符的位置。

{

if(i==0 ||!((str[I-1]>;= ' a ' & amp& ampstr[I-1]& lt;= ' z ')| |(str[I-1]& gt;= ' A ' & amp& ampstr[I-1]& lt;='Z ')))

{

j = I;

}

//j++;

}

如果(i & gt0 & amp& amp!((str[I]& gt;= ' a ' & amp& ampstr[I]& lt;= ' z ')| |(str[I]& gt;= ' A ' & amp& ampstr[I]& lt;= ' Z ')& amp;& amp

((str[I-1]>;= ' a ' & amp& ampstr[I-1]& lt;= ' z ')| |(str[I-1]& gt;= ' A ' & amp& ampstr[I-1]& lt;= ' z ')//結束字母的位置

{

WAC->;str 1[WAC->;strC]=(char *)calloc(I-j+1,sizeof(char));//分配空間並初始化

strncpy(WAC-& gt;str 1[WAC->;strC],str+j,I-j);

WAC->;strc++;

}

}

如果(我!=j)//將最後壹個字符串復制到str1中。

{

WAC->;str 1[WAC->;strC]=(char *)calloc(I-j+1,sizeof(char));//分配空間並初始化

strncpy(WAC-& gt;str 1[WAC->;strC],str+j,I-j);

WAC->;strc++;

}

printf("total=%d\n ",WAC-& gt;strC);

//返回(sum);

}

void main()

{

char str[1000];

WordAndCnt wac

memset(str,0,1000);

Printf("輸入壹串英文:\ n ");

gets(str);

總計(str & amp;WAC);

printf(" \ n \ n ");

if(WAC . strc & gt;0)

{

for(int I = 0;我& ltwac.strCi++)

{

Printf("輸入的%d個單詞是:% s \ n ",I+1,WAC。str 1[I]);

}

}

}