题目:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。(p137)
#include<stdio.h>
int main()
{
char c[100]; //定义储存字符串的数组
int n=0,m=0,x=0,y=0,i=0;
gets(c); //字符串输入函数
for(i;c[i]!='\0';i++)
{
if((c[i]>=65 && c[i]<=90) || (c[i]>=96 && c[i]<=121))
n++;
else if(c[i]==' ')
m++;
else if(c[i]>=48 && c[i]<=57)
x++;
else
y++;
}
printf("%d\n",n);
printf("%d\n",m);
printf("%d\n",x);
printf("%d\n",y);
return 0;
}
改善:通过使用getchar(),字符串不受数组限制。
#include<stdio.h>
int main()
{
char c;
int n=0,m=0,x=0,y=0,i=0;
while((c=getchar())!='\n')
{
if(c>=65 && c<=90 || c>=96 && c<=121)
n++;
else if(c==' ')
m++;
else if(c>=48 && c<=57)
x++;
else
y++;
}
printf("%d\n %d\n %d\n %d\n",n,m,x.y);
return 0;
}