Mercury_sky 2022-11-06 22:52 采纳率: 75%
浏览 31
已结题

c语言,统计字符类型个数

问题遇到的现象和发生背景

c语言,vs2022,输入字符串统计字母和数字的个数,可以运行,但是得出的结果不对

用代码块功能插入代码,请勿粘贴截图

#include<stdio.h>
int main()
{
char a[80];
int i = 0;
char j=0;
int letter=0, sum=0, space=0, other=0;
for (j= 0; j < 80; j++)
{
scanf("%c", &a[j]);
if (a[j] == '\n')
break;
}
for (i = 0; i < j; i++)
{
if (a[i] > '0' && a[i] < '9')
sum++;
else
if (a[i] > 'a' && a[i] < 'z' || a[i] > 'A' && a[i] < 'Z')
letter++;
else
if (a[i] == ' ')
space++;
else
other++;
}
printf("字母有:%d个\n数字有:%d个\n空格有:%d个\n其他字符有:%d个", letter, sum, space, other);
return 0;
}

运行结果及报错内容

输入:i am a student 时输出字母有9个,数字0个,空格有3个,其他字符有2个

我的解答思路和尝试过的方法

用for循环输入一个字符串,再用for循环判断每一个字符的类型

我想要达到的结果

能正确得出结果

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2022-11-07 00:18
    关注

    if (a[i] > '0' && a[i] < '9') 应修改为:if (a[i] >= '0' && a[i] <= '9')
    if (a[i] > 'a' && a[i] < 'z' || a[i] > 'A' && a[i] < 'Z') 应修改为:if (a[i] >= 'a' && a[i] <= 'z' || a[i] >= 'A' && a[i] <= 'Z')

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月15日
  • 已采纳回答 11月7日
  • 修改了问题 11月6日
  • 修改了问题 11月6日
  • 展开全部

悬赏问题

  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序
  • ¥15 多址通信方式的抗噪声性能和系统容量对比
  • ¥15 winform的chart曲线生成时有凸起
  • ¥15 msix packaging tool打包问题
  • ¥15 finalshell节点的搭建代码和那个端口代码教程
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作