如何解决检查char数组中的字符是否为整数| C脚本
嗨,我有以下代码。假设如果字符串中的一个字符不是数字(0-9)(不具有ascii值0-9),则循环遍历字符串中的每个字符并跳出循环。
//check if opperands are positive ints not zero
size_t i = 0;
//iterate through characters in string until null
while (argv[1][i] != '\0') {
int c = argv[1][i];
if(c >= 0 && c <= 9){
printf("True\n");
i++;
}
else {
printf("false\n");
return 1;
}
}
但是,说循环正在字符串1234中进行迭代,即使所有数字的ascii值都在1到9之间,它也会返回false。任何人都对为什么这样做有任何想法,我认为这可能是某件事与我的if / else语句。谢谢!
解决方法
数字文字0和9与字符文字'0'和'9'不同。您应将if (c >= 0 && c <= 9)
替换为if (c >= '0' && c <= '9')
。请注意数字周围的单引号。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。