末尾没有数字的两位数字符串加法

two-digit string addition with no number at the end

我必须添加两个数字字符串,意思是 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)

#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;
}