C语言 如何将字符串转换成数字。不用指针和函数库,求解答

C语言如何将字符串转换成数字。不用指针和调用函数库,求解答

C语言 里字符 是用 ascii 码复式存放的
比如 '0'的ASCII 码是48,如果一个字符ch是数字,那么,ch-'0' 的值 就是 ch代表数字的值
因此 事先 要判断一下
比如 if (ch >= '0' && ch <='9') digi=ch -'0'
温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-05-03

#include <stdio.h>

long long s2d(char s[])

{

    long long n,sign;

    int i;

    for(n=i=0,sign=1;s[i];++i)

    {

        if(i==0)

        {

            if(s[i]=='-')

            {

                sign=-1;

                continue;

            }

            if(s[i]=='+')

            {

                sign=1;

                continue;

            }

        }

        if(s[i]>='0'&&s[i]<='9')

        {

            n=n*10+s[i]-'0';

        }

        else

        {

            break;

        }

    }

    return n*sign;

}

int main()

{

    printf("%lld\n",s2d("-1234567890"));


    return 0;

}

相似回答