2条回答 默认 最新
- qzjhjxj 2021-11-25 13:49关注
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); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报