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

如何在C语言中计算形如"10+5+6+31+3+45"字符串的完整数字和?

计算字符串中完整数字和的C语言实现

原代码仅逐个累加单个数字字符,无法识别连续数字组成的完整整数(比如将31拆为3+1),以下是修正后的实现,可正确识别并累加所有完整数字:

#include<stdio.h>  
int main()
{
    char str[100] = "10+5+6+31+3+45";
    int i, sum = 0, current_num = 0;
    
    for (i = 0; str[i] != '\0'; i++)
    {
        if (str[i] >= '0' && str[i] <= '9')
        {
            // 拼接连续数字,构建完整整数
            current_num = current_num * 10 + (str[i] - '0');
        }
        else if (str[i] == '+')
        {
            // 遇到分隔符,将当前数字加入总和并重置临时变量
            sum += current_num;
            current_num = 0;
        }
    }
    // 处理最后一个数字(字符串末尾无分隔符)
    sum += current_num;
    
    printf("Sum of all complete numbers:\n%d", sum);
    return 0; 
}

核心逻辑说明

  • current_num变量:临时存储正在拼接的完整数字,初始化为0
  • 数字拼接:每遇到数字字符,将临时值乘以10(实现数位左移),再加上当前数字的数值,完成多位数构建
  • 分隔符处理:遇到+时,说明当前完整数字已拼接完成,将其加入总和并重置临时变量
  • 末尾数字处理:循环结束后,最后一个完整数字尚未加入总和,需单独累加

内容的提问来源于stack exchange,提问作者Kazi Rayhan Reza Tirtho

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 06:01:26