这道C语言怎么做?

来源:百度知道 编辑:UC知道 时间:2024/05/30 08:34:02
输入一个小写字母组成的英文句子,统计该句子有几个英文单词,统计每个字母出现的次数,并将句子中每个单词的首字母大写后输出。
如:输入: this is a cat!
输出:5个单词;
每个字母出现次数t:2 h:1 i:2 s:2 a:2 c:2
This Is A Cat!
急需,如果可能请在半小时之内回复!不胜感激!

判断单词主要是判断空格...大写每个单词的首字母也是这样的....至于字母出现的次数,你可以用个数组或者自己定义一个结构体解决...

#include"stdio.h"
#include"string.h"
main()
{
int i,num=1,w=0;
char str[80],c;
gets(str);
c=str[0]-32;
putchar(c);
for(i=1;str[i]!='\0';i++)
{
if(str[i]==' ')
{
w=1;
putchar(str[i]);
}
else if(w==1)
{
num++;
w=0;
c=str[i]-32;
putchar(c);
}
else
putchar(str[i]);
}
printf("\nIt is %d words.\n",num);
}
我这个程序只能做前两个问题,第三个统计个数的,我认为可以用switch函数做。
switch()
{
case a:a++;break;
..........
case z: z++;break;
}
但是代码量太大了,可能有更简单的方法。我没想出来。 另外在我们学MATLAB时做过这道题,但它有一个简单的函数来统计。