gpt4 book ai didi

c - 字符串 C 中的整数之和

转载 作者:行者123 更新时间:2023-11-30 16:39:19 25 4
gpt4 key购买 nike

这是我第一次使用指针,这就是为什么我的逻辑可能非常有缺陷。我正在编写一个程序,使用 atoi() 对字符串中的数字求和。例如,sumNumbers("1 2 b asdsd 3 4) 应该是 10。这是我的程序,

int sumString(char string[]) {
char *ptr=string;
int index = 0;
int len = strlen(string);
int sum = 0;
while(index < len) {
while (ptr[0] == ' ') {
ptr++;
index++;
if (index == len) {
return sum;
}
}
while (atoi(ptr) == 0) {
ptr++;
index++;
if (index == len) {
return sum;
}
}
if (atoi(ptr) != 0) {
sum += atoi(ptr);
ptr++;
index++;
while (ptr[0] != ' ' || atoi(ptr) != 0 || ptr[0] == '\0') {
ptr++;
index++;
}
}
}
return sum;
}

我的第一个条件应该删除所有空格,第二个条件应该继续运行所有字母,第三个条件应该将 atoi 的值相加,继续直到出现空格或字母,然后循环应该再次迭代前两个条件再次执行其任务。不幸的是,这适用于大多数情况,除非我将字母粘贴到数字上,例如“18b5”。这应该返回 23,但它返回 18。

最佳答案

最后一个循环应更改为:

        while (ptr[0] != '\0' && atoi(ptr) != 0) {
ptr++;
index++;
}

关于c - 字符串 C 中的整数之和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47088169/

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