C语言将数字字符串s转换为整数并作为返回值返回。例如s为”123”,则函数返回整数123。

C语言 编写函数int ATOI(char s),将数字字符串s转换为整数并作为返回值返回。例如s为”123”,则函数返回整数123。*同时编写主函数验证。**
要求只能用stdio.h 不能不其他的

6个回答

很容易啊,你遍历字符串,对每个字符执行-'0'的操作就可以利用ascii码将字符转换为数字,然后每次处理完都使用*10+cur,就可以最后返回一个整数了
代码自己写吧,这个挺基础的

mmm2121
凌云至上 有道理
4 年多之前 回复

有个函数叫什么来着。。。atoi()函数是将字符串转换为整数的,你找找看,还有叫itoa()是将整数转换为字符串的,还有些什么atof是转浮点的,名字比较简单,使用也很方便。

不好意思,没看清你题目。你当我没说。

qq_34311027
qq_34311027 .. 这就很尴尬了。。 没事
4 年多之前 回复

有个函数可以调用吧应该

 #include"stdio.h"

int ATOI(char s[])
{
    int temp=0;//用于 计算 整数 的 位数 
    while(s[temp]!='\0')
    {
        temp++;
    }

    int result=0;
    for(int i=temp;i>0;i--)
    {
        int pow=1;
        for(int j=1;j<i;j++)
        {
            pow*=10;
        }
        result+=(s[temp-i]-48)*pow;
    } 
    return result;
}

int main()
{
    int a=ATOI("12300");
    printf("%d\n",a);
    return 0;
} 
mmm2121
凌云至上 如果是负整数,就不行了
4 年多之前 回复

这是我自己写的,感觉还简单一点
#include
int ATOI(char *s)
{
int sum=0;
while(*s)
{
sum=sum*10+*s-'0';
s++;
}
return sum;
}
void main()
{
int sum=0;
char s[100];
gets(s);
sum=ATOI(s);
printf("%d\nsum+1=%d\n",sum,sum+1);
}

mmm2121
凌云至上 考虑负整数
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐