遇到困难了请大家看下

从键盘输入的字符串中包含多个正整数。(This12345is a23456bc 98765test.)。(注意: 整数位数不超过10位数。)
完成:对字符串中的整数进行求和,并且显示求和结果。
用devc++编写


#include<stdio.h>
#include<string.h>
int main()
{
    char c1[100];
    long a[100] = {0};
    long sum=0,cnt=0;
    gets(c1);
    int i = 0, j = 0;
    while (c1[i] != '\0') 
    {
        if (c1[i] >= '0' &&  c1[i] <= '9')  
            a[j] = a[j] * 10 + (c1[i] - '0');
        else
        {
            sum += a[j];
            if (c1[i - 1] >= '0' && c1[i-1] <= '9')
                j++;
        }
        i++;
    }
    sum += a[j];
    printf("%d",sum);
}

devc已测试可用

#include <stdio.h>
int main()
{
    int sum = 0, temp = 0;
    char c;
    scanf("%c", &c);
    while (c != '\n')
    {
        if(c>='0'&&c<='9')
        {
            temp = temp * 10 + c - '0';
        }
        else
        {
            sum += temp;
            temp = 0;
        }
        scanf("%c", &c);
    }
    printf("%d", sum);
    return 0;
}