在C中,我需要一个从0-9
获取字母数字列表字符并将其转换为整数的函数。
代码:
int strToInt(char string[])
{
int i, intValue, result = 0;
for (i = 0; string[i] > '0' && string[i] <= '9'; ++i)
{
intValue = string[i] - '0';
result = ???
}
return result;
}
我该怎么办?使它工作?
答案 0 :(得分:2)
试试这个:
result = result * 10 + intValue;
此外:
string[i] > '0'
for
循环中的看起来很讨厌 - 数字可以包含数字0,对吧?您可能想要使用
string[i] >= '0'
相反,甚至更好,没有重新发明轮子:
#include <ctype.h>
for (i = 0; isdigit(string[i]); ++i)
答案 1 :(得分:1)
好吧,你的字符串是十进制的,基数为10,字符串中的每个数字代表一个基数为10的系统中的位置。即所以你想做
result = result * 10 + intValue;
请记住'0'也是一个数字,所以你不想省略那个,使用string[i] >= '0'
答案 2 :(得分:0)
如果您在谈论基础10
,您可能应该将0
也包括在内,因此
string[i] >= '0'
在for
循环中。和通常的地方价值计算
result = result*10 + intValue;