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

如何优化C语言输入字符/数字的识别逻辑及处理大数值输入

代码优化方案

核心优化思路

  • 将重复的输入值转换逻辑抽为独立工具函数,消除冗余代码,后续修改规则只需要调整一处即可
  • 替换硬编码的ASCII数值判断,改用ctype.h标准库提供的字符类型判断接口,可读性更强,也避免ASCII不兼容的极端场景问题
  • 通用数字解析逻辑替换固定长度字符判断,支持任意大小的合法数字输入,不再局限于10以内的数值
  • 补充多行输入处理逻辑,可直接跑完示例给出的所有输入用例

优化后完整代码

#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>

// 输入值转换:数字转对应整数,大写字母转字母表排序(A=1...Z=26)
int convert(char *input) {
    if (isdigit(input[0])) {
        // 是数字直接转整数,支持任意大小的合法数字输入
        return atoi(input);
    } else if (isupper(input[0])) {
        // 是大写字母,返回对应排序值
        return input[0] - 'A' + 1;
    }
    // 非法输入可根据需求补充异常处理逻辑
    return 0;
}

int main() {
    char a[32], b[32];
    // 循环读取每一行的两个输入,直到输入结束
    while (scanf("%s %s", a, b) == 2) {
        printf("%d\n", convert(a) + convert(b));
    }
    return 0;
}

逻辑说明

  1. 转换函数会优先判断输入首字符是不是数字,如果是直接用atoi完成整数转换,不管是1位、2位还是更多位的数字都能正确解析,天然支持更大的数值输入
  2. 字母判断用标准库isupper接口,计算逻辑用'A'代替硬编码的65,代码含义一目了然
  3. 新增的循环读取逻辑可以处理任意行数的输入,完全匹配示例的输入输出要求,不需要每次运行只处理一行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:06:03