gpt4 book ai didi

将字符串转换为整数?

转载 作者:行者123 更新时间:2023-11-30 20:07:05 25 4
gpt4 key购买 nike

这怎么可能?我的教科书问题之一(在这里准备考试)声称您可以做到这一点并提出以下问题:

编写一个接受字符串的函数。该函数应将字符串转换为整数。如果无法转换则返回0。

示例 1:8976 返回的值((((8*10 + 9) *10)+ 7 )* 10) + 6

示例 2:67A 返回值 0

如何做到这一点?我知道您可以使用 atoi() 函数,但本书希望在没有任何函数的情况下完成此操作?

编辑:一些进一步的思考:

 int i, ans;
char number[5]="8976";

for(i=0;i<strlen(number);i++)
ans=(ans*10)+(number[i]-'0');

上面的方法可行吗?

最佳答案

我正在写一些东西,但与此同时,在OP编辑和进一步评论中,问题基本上得到了回答。

这是函数头:

int f(const char *str)
{

变量:v是计算值,c是指向当前正在扫描的字符的指针,d是当前数字。

    int v;
const char *c;
int d;

v = 0;
c = str;

c指向0(在C中为FALSE)时,迭代将在空终止符处停止。扫描是从左到右的。

    while (*c)
{

OP 的主要思想是正确的。

        v *= 10;
d = *c - '0';

您应该只测试 d 以检查它是否在 09 之间。

        if (d < 0 || d > 9)
return 0;

此解决方案使用指针代替索引。

        v += d;
++c;
}

返回结果。

    return v;
}

关于将字符串转换为整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17285358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com