3185511 2024-01-07 19:06 采纳率: 100%
浏览 8
已结题

统计字符串里面字母,数字,空格,换行符,其他字符个数,为什么统计出来数据不对呀?怎么才能在敲回车的时候不让程序终止?

img

img


统计字符串里面字母,数字,空格,换行符,其他字符个数,为什么统计出来数据不对呀?怎么才能在敲回车的时候不让程序终止?

  • 写回答

6条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-01-07 19:10
    关注

    引自免费微信小程序:皆我百晓生

    问题分析: 根据代码和结果,出现问题的地方主要有两个:

    1. 字符串arr的定义和赋值有问题,应该是char arr[100];而不是char arr[]="0";,这样才能存储输入的字符串并进行统计。
    2. 在统计换行符和其他字符的时候,有一些逻辑判断的错误,应该是else if(arr[i]=='\n')else,而不是else if(arr[i]=='\t')else

    解决方案: 下面是修正后的代码:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main() {
        int i = 0;
        int count1 = 0, count2 = 0, count3 = 0, count4 = 0, count5 = 0;
        char arr[100];
        
        gets(arr);
        
        for (i = 0; i < strlen(arr); i++) {
            if ((arr[i] >= 'a' && arr[i] <= 'z') || (arr[i] >= 'A' && arr[i] <= 'Z')) {
                count1++;
            } else if (arr[i] >= '0' && arr[i] <= '9') {
                count2++;
            } else if (arr[i] == ' ' || arr[i] == '\t') {
                count3++;
            } else if (arr[i] == '\n') {
                count4++;
            } else {
                count5++;
            }
        }
        
        int sum = count1 + count2 + count3 + count4 + count5;
        
        printf("字母为%d, 数字为%d, 空格为%d, 换行符为%d, 其他字符为%d\n", count1, count2, count3, count4, count5);
        printf("总的个数为%d\n", sum);
        
        // 使程序在敲回车的时候不终止
        getchar();
        
        return 0;
    }
    

    这样就修正了统计出来数据不对的问题,并且通过使用getchar()函数,可以在敲回车时不让程序终止。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 1月15日
  • 已采纳回答 1月7日
  • 创建了问题 1月7日

悬赏问题

  • ¥15 一道ban了很多东西的pyjail题
  • ¥15 关于#r语言#的问题:如何将生成的四幅图排在一起,且对变量的赋值进行更改,让组合的图漂亮、美观@(相关搜索:森林图)
  • ¥15 C++识别堆叠物体异常
  • ¥15 微软硬件驱动认证账号申请
  • ¥15 有人知道怎么在R语言里下载Git上的miceco这个包吗
  • ¥15 GPT写作提示指令词
  • ¥20 根据动态演化博弈支付矩阵完成复制动态方程求解和演化相图分析等
  • ¥20 关于DAC输出1.000V对分辨率和精度的要求
  • ¥15 华为超融合部署环境下RedHat虚拟机分区扩容问题
  • ¥15 哪位能做百度地图导航触点播报?