不能用scanf函数来接收字符串,因为有空格。 所以用gets或者fgets函数都行
#include<stdio.h>
#include<string.h>
int main(int argc, char const *argv[])
{
int in_len = 0;
int yw_sum = 0;
int kg_sum = 0;
int num_sum = 0;
int qt_sum = 0;
char in_str[1000 + 1];
// scanf("%s", in_str);
while ( gets(in_str) != NULL)
{
yw_sum = 0;
kg_sum = 0;
num_sum = 0;
qt_sum = 0;
in_len = strlen(in_str);
for (int i = 0; i < in_len; i++)
{
if ( in_str[i]>='a' && in_str[i]<='z' || in_str[i]>='A' && in_str[i]<='Z' )
{
yw_sum++;
}
else if ( in_str[i]==' ' )
{
kg_sum++;
}
else if ( in_str[i]>='0' && in_str[i]<='9' )
{
num_sum++;
}
else
{
qt_sum++;
}
}
printf("%d\n", yw_sum);
printf("%d\n", kg_sum);
printf("%d\n", num_sum);
printf("%d\n", qt_sum);
}
return 0;
}