字符数组的处理——help me!

来源:百度知道 编辑:UC知道 时间:2024/06/17 17:58:23
编写完整程序:输入一个字符串(英文句子,长度不超过100个字符)存放到字符数组中,试统计其中有单字母构成的单词有几个,双字母构成的单词有几个,三字母构成的单词有几个...显示统计结果。
(本人用的是中文版WinTC。我知道应该要用strlen,strcpy,但是具体怎么循环总是想不清楚,望有才的同志援手相救,在下先谢谢了~~)

我不知道最长的单词是几个字母,我就假设26个吧,不排除还有大于26个字母的单词

// tongji[0]存放大于26字母的单词个数,tongji[1]存放1个字母的单词个数,....以此类推

#define MAX 26

int tongji[MAX+1]={0};
int i,n=0;

for(i=0; str[i]!='\0'; i++) //str是存放英文句子的字符数组
{
if(str[i]==' ') //如果遇到空格,就是一个单词结束
{
if(n==0) // 如果连续遇到空格,则跳过,继续下一个
continue;
else if(n>MAX)
tongji[0]++;
else
tongji[n]++; // n个字母的单词数加一

n = 0;
}
else
{
n++; // 单词字母计数
}
}

for(i=1; i<=MAX; i++)
{
if(tongji[i]>0)
printf("%d个字母的单词个数为:%d\n", i, tongji[i]);
}

if(tongji[0]>0)
printf("大于%d个字母的单词个数为:%d\n", MAX, tongji[0]);