输入一个包含数字的字符串,将其中的所有孤立数之和输出。

输入一个包含数字的字符串,将其中的所有孤立数之和输出。例如:输入:a10.51b2 1c4def3.2 输出:20.71(因为10.51+2+1+4+3.2=20.71)
当出现小数点后,其后的数值的拼法为:num[numcount] = num[numcount] + (s[i]-'0')*pow(10,-(ws+1)); 同时,ws(小数位数)要增1

代码如下,如有帮助,请采纳支持一下,谢谢。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    char tmp[10]={0};   //用于临时存储字符串
    char buf[100]={0};  //接收字符串
    int i = 0,j = 0,t;
    double sum = 0;
    printf("请输入一个字符串:");
    gets(buf);
    
    while(buf[i] != '\0')
    {
        if(buf[i]>='0' && buf[i]<='9')
            tmp[j++] = buf[i];
        else if(i>0 && buf[i] == '.' && (buf[i-1]>='0' && buf[i-1]<='9') )
            tmp[j++] = buf[i];
        else
        {
            if(j > 0)
            {
                sum += atof(tmp);
                //printf("tmp =%s\n",tmp);
                j=0;
                for(t=0;t<10;t++)
                    tmp[t] = 0;
            }
        }
        i++;
    }

    if(j > 0)
    {
        sum += atof(tmp);
        //printf("tmp =%s\n",tmp);
        j=0;
        for(t=0;t<10;t++)
            tmp[t] = 0;
    }

    printf("和=%g\n",sum);

    return 0;

}