返回字符串s中所有数字字符按从左到右的顺序组合成的整数

img


其中 s 是用户传入的字符串。 字符串s中可能含有数字字符。把s中的数字字符按从左到右的顺序组合成一个整数,返回这个整数的值。
例如,字符串 "ab3A70@9"中,含有数字字符组合成整数3709。如果字符串s中没有数字字符,则返回0。数据保证数字字符组合不超过整型表示范围。


#include<stdio.h>
#include<string.h>
int main()
{
    char s[100];
    int sum=0,cnt=0;
    gets(s);
    int len = strlen(s);
    for(int i=0;i<len;i++)
        if (s[i] >= 48 && s[i] <= 57)
        {
            cnt++;
            if (cnt == 1)
                sum = s[i] - '0';
            else
                sum = sum * 10 + s[i] - '0';
        }
    printf("%d",sum);
}

供参考:

/*请在这里填写答案*/
int myatoi(const char *s)
{
    int dig = 0, i;
    const char *str = s;
    for(i = 0;str[i] != '\0'; i++)
         if(str[i] >= '0' && str[i] <= '9')
             dig = dig *10 + str[i] - '0';
    return dig;
}