两位数的字符串添加,最后没有数字

时间:2015-01-11 00:03:05

标签: c string addition

我必须添加两个数字字符串,意思是1234 12 + 34(至少这是我收集的内容)。我编写了一个程序,它可以实现一个例外,即当最后一个数字没有一对它不会正确添加时。

这是我的代码:

void main()

{


char string[1000];
int count,sum=0,x,y;

printf("Enter the string containing both digits and alphabet\n");
scanf("%s",string);

for(count=0;count < string[count]; count++)
{
        x=(string[count] - '0') * 10;
        y=(string[count+1] - '0') + x;
        sum += y;
        count++;      
}

printf("Sum of string in two digit array is =%d\n",sum);

}

所以基本上如果我有123该程序做12+(30-48),而不是12 + 3。我已经坐了一会儿,无法弄清楚如何解决这个问题,任何提示或建议都会受到欢迎。

(像1234或4567这样的字符串会做12 + 34和45 + 67)

1 个答案:

答案 0 :(得分:1)

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

int main(void){
    char string[1000];
    char digits[3] = {0};
    int i, j, x, sum = 0;

    printf("Enter the string containing both digits and alphabet\n");
    scanf("%999s", string);
    for(j = i = 0; string[i]; ++i){
        if(isdigit(string[i])){
            digits[j++] = string[i];
            if(j==2){
                sscanf(digits, "%d", &x);
                sum += x;
                j = 0;
            }
        }
    }
    if(j==1){
        digits[j] = 0;
        sscanf(digits, "%d", &x);
        sum += x;
    }
    printf("Sum of string in two digit array is = %d\n", sum);
    return 0;
}