include<stdio.h>
int e = 0, f = 0, c = 0, d = 0;
int main()
{
void number(char b[20]);
int i;
char a[20];
scanf("%s", a);
number(a);
return 0;
}
void number(char b[20])
{
int i;
for (i = 0; b[i]!='\0'; i++)
{
if (b[i]>='0'&&b[i]<='9')
e++;
else if ((b[i] >= 'a' && b[i] <='z' )||( b[i]>='A' && b[i] <='Z'))
f++;
else if (b[i]==' ')
c++;
else
d++;
}
printf("%d,%d,%d,%d", e, f, c, d);
}
scanf("%s", a);不能读取空格。遇到空格就读取结束
应该改成 gets(a);
你题目的解答代码如下:
#include <stdio.h>
int e = 0, f = 0, c = 0, d = 0;
int main()
{
void number(char b[20]);
int i;
char a[20];
//scanf("%s", a);
gets(a);
number(a);
return 0;
}
void number(char b[20])
{
int i;
for (i = 0; b[i] != '\0'; i++)
{
if (b[i] >= '0' && b[i] <= '9')
e++;
else if ((b[i] >= 'a' && b[i] <= 'z') || (b[i] >= 'A' && b[i] <= 'Z'))
f++;
else if (b[i] == ' ')
c++;
else
d++;
}
printf("%d,%d,%d,%d", e, f, c, d);
}
如有帮助,望采纳!谢谢!
scanf("%s", a);
改为
gets(a);
scanf("%s",a)遇到空格会结束输入的。