gpt4 book ai didi

c - atoi 函数在 for 循环中不起作用

转载 作者:行者123 更新时间:2023-11-30 18:18:29 24 4
gpt4 key购买 nike

我正在尝试获得这个方程的输出:

44 - 10 + 11 / 5

它正常工作如下:

char str[] = "44 - 10 + 11 / 5";
int sum = 0 ;
sum += atoi(str); // 0 + 44
sum += atoi(str+3); // 44 + 10
sum += atoi(str+5); // 54 + 11
sum += atoi(str+7); // 65 / 5 = 13
printf("%d/n",sum); // output = 13

但如果我将 atoi() 函数放在 for 循环中,它就不起作用:

char str[] = "44 - 10 + 11 / 5";
int sum = 0;
int i;
sum += atoi(str);
for (i = 0; i < 100; i++) {
if (!(str[i] >= 0 && str[i] <= 9)) { //if str[i] is not a number
sum += atoi(str + i);
}
}
printf("%d/n", sum); // output = 0

最佳答案

您正在比较包含 ASCII 的 char 值将数字的表示形式转换为实际数字。改变

if(!(str[i]>=0 && str[i]<=9)){  

if(!(str[i]>='0' && str[i]<='9')){  

我没有检查其余代码是否正确,但当然,这是一个问题。

关于c - atoi 函数在 for 循环中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39320147/

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