gpt4 book ai didi

c - atoi返回值

转载 作者:太空宇宙 更新时间:2023-11-04 01:23:44 26 4
gpt4 key购买 nike

我有一个关于 atoi 的问题。我正在尝试使用 atoi 来检查我是否可以将字符转换为数字,但是,如果我的数字为 0,我该如何解决?我知道 atoi 如果失败则返回 0,但如果它有效则返回数字的值,在这种情况下 0 将属于这两个类别。

如果我改用 strtol,有没有办法检查数组中的字符是否 >= 到 0,或者根本不存在/根本不存在。

例如,如果我的动态数组由 {1 40 500} 组成,并且我尝试在位置 8(刚好超出范围)进行 strtol,我希望它返回 NULL 或一些表明 atoi/strtol 失败的指示

最佳答案

您可以改为使用 sscanf 来读取整数,这样只需检查 sscanf 的返回值以查看它是否找到了整数

char a[] = "12";
char b[] = "abc";
int n = 0;

assert(sscanf(a, "%d", &n ) == 1);
assert(sscanf(b, "%d", &n ) == 0);

关于c - atoi返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35715329/

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