本题要求实现一个函数,统计给定字符串中英文字母、空格或回车、数字字符和其他字符的个数。
#include <stdio.h>
#define MAXS 15
void StringCount( char s[] );
void ReadString( char s[] ); /* 由裁判实现,略去不表 */
int main()
{
char s[MAXS];
ReadString(s);
StringCount(s);
return 0;
}
void StringCount( char s[] )
{
int i=0,count_l=0,count_b=0,count_d=0,count_o=0;
while(s[i]!='\0')//'\0'结束符
{
if((s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z'))
{
count_l++;
}
else if(s[i]==' '||s[i]=='\n')//!!首次把回车当作了其他,导致错误!!是空格
{
count_b++;
}
else if(s[i]>='0'&&s[i]<='9')
{
count_d++;
}
else
count_o++;
i++;
}
printf("letter = %d, blank = %d, digit = %d, other = %d",count_l,count_b,count_d,count_o);
}