#include<stdio.h>
#include<string.h>
int main()
{
int i,letter,space,num,others;
letter=space=num=others=0;
char a[1000];
scanf("%[^\n]",a);
for(i=0;i<strlen(a);i++)
{
if((a[i]>='a' && a[i]<='z') || (a[i]>='A' && a[i]<='Z'))
letter++;
else if(a[i]==' ')space++;
else if(a[i]>='0' && a[i]<='9')num++;
else others++;
}
printf("letter: %d\nspace: %d\nnum:%d\nothers: %d\n",letter,space,num,others);
return 0;
}
scanf("%[^\n]",a); 本行可以用gets(a); 代替。
scanf()是不可以读入空格的,他是以空格,tab,和回车为结束符的,而gets是不以空格为结束符的,他可以读入空格的,他只以回车和tab键为结束符。
written by Sneexy