scanf()函数遇到空格等,即认为输入结束,所以输入“hhh123 222” 时,只读入了空格前部分“hhh123” ,修改读入的方式,供参考:
#include<stdio.h>
int main()
{
void tj(char a[100]);
char a[100];
printf("请输入字符串:\n");
//scanf("%s",a);
gets(a);
tj(a);
puts(a); //输出看看读入的字符串是什么内容
return 0;
}
void tj(char a[100])
{
int z=0,s=0,k=0,q=0,i;
for(i=0;a[i]!='\0';i++)
{
if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<'Z')
z++;
else if(a[i]>='0'&&a[i]<='9')
s++;
else if(a[i]==32)
k++;
else
q++;
}
printf("字母数为:%d\n",z);
printf("数字数为:%d\n",s);
printf("空格数为:%d\n",k);
printf("其他数为:%d\n",q);
}
源代码
#include<stdio.h>
int main()
{
void tj(char a[100]);
char a[100];
printf("请输入字符串:\n");
scanf("%s",a);
tj(a);
return 0;
}
void tj(char a[100])
{
int z=0,s=0,k=0,q=0,i;
for(i=0;a[i]!='\0';i++)
{
if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<'Z')
z++;
else if(a[i]>='0'&&a[i]<='9')
s++;
else if(a[i]==32)
k++;
else
q++;
}
printf("字母数为:%d\n",z);
printf("数字数为:%d\n",s);
printf("空格数为:%d\n",k);
printf("其他数为:%d\n",q);
}