You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改C语言代码,统计字符串长度时忽略空格并筛选偶数长度输入

问题分析与代码修改

原代码的目标是输出有效字符数(忽略空格)为偶数的输入行,但当前实现存在两处关键问题:

  1. while (fgets(...)) != 0); 末尾的分号导致循环仅执行一次,最终只处理最后一行输入
  2. 使用strlen统计长度时会包含空格,不符合“忽略空格统计字符数”的需求

修改后的代码

#include <stdio.h>
#include <string.h>

int main(void) {
    char string[1024];
    // 逐行读取输入内容
    while (fgets(string, sizeof(string), stdin) != NULL) {
        int valid_count = 0;
        int idx = 0;
        // 遍历字符串,仅统计非空格、非换行的有效字符
        while (string[idx] != '\0') {
            if (string[idx] != ' ' && string[idx] != '\n') {
                valid_count++;
            }
            idx++;
        }
        // 有效字符数为偶数时,输出整行内容
        if (valid_count % 2 == 0) {
            printf("%s", string);
        }
    }
    return 0;
}

关键修改说明

  • 移除了原while循环末尾的多余分号,确保每一行输入都能被循环处理
  • 新增逐字符遍历逻辑,明确跳过空格(' ')和换行符('\n'),只统计符合要求的有效字符数量
  • 保留原需求的输出逻辑:仅当有效字符数为偶数时,输出整行输入内容

内容的提问来源于stack exchange,提问作者Dunkle Nacht

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 08:15:34