#include<stdio.h>
#include<string.h>
int main()
{
char str[40];
gets(str);
int n=strlen(str),zimu=0,shuzi=0,kongge=0,qita=0,i;
for(int i=0;i<n;i++)
{
if(str[i]<='z'&&str[i]>='a'||str[i]<='Z'&&str[i]>='A')
zimu++;
else if(str[i]<='9'&&str[i]>='0')
shuzi++;
else if(str[i]==32)
kongge++;
else
qita++;
}
printf("zimu=%d\nshuzi=%d\nkongge=%d\nqita=%d\n",zimu,shuzi,kongge,qita);
return 0;
}
题目是:
统计字符串中字母、数字、空格和其他字符的个数。
输入格式:
在一行中输入长度不超过40的字符串。
输出格式:
第一行中输出“zimu=x“
第二行中输出“shuzi=y“
第三行中输出“kongge=z”,
第四行中输出“qita=m” 所有结果均原样输出,没有列宽控制。
为什么无法运行呢
代码没有问题啊,可以运行
所谓无法运行,是编译有错,还是没有输出,还是输出结果不对呢?
你用strlen来计算str的长度是有问题的,strlen是计算从第一个字节到后续第一个0值为止的串长度,如果str里没有0,那么就不知道是多少了。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y