2013-02-13 94 views
0

在C中,我需要一个从0-9获取字母数字列表字符并将其转换为整数的函数。strToInt函数将字符列表转换为C中的整数

代码:

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; 
} 

我放什么???使其工作?

回答

2

试试这个:

result = result * 10 + intValue; 

另外:

string[i] > '0' 
for循环

似乎讨厌的 - 号可以包含数字0,对不对?您可能需要使用

string[i] >= '0' 

代替,甚至更好,而无需重新发明轮子:

#include <ctype.h> 

for (i = 0; isdigit(string[i]); ++i) 
+1

也许值得指出的是'string [i]>'0''严格比较可能是一个错误。 – NPE 2013-02-13 17:51:45

+0

@NPE是的,没错。 – 2013-02-13 17:52:44

+0

谢谢你的答案是真的有用! – poseidon11 2013-02-13 18:38:48

1

嗯,你的字符串是十进制,基地10,然后将字符串中每个数字代表一个位置在基地10系统。即所以,你会想要做

result = result * 10 + intValue; 

记住,“0”也是一个数字,所以你不想省略一个,使用string[i] >= '0'

+0

绝对正确的零值!谢谢! – poseidon11 2013-02-13 18:40:01

0

如果你正在谈论的基础10,你也许应该包括0也作为一个数字,因此

string[i] >= '0' 

for循环。和通常的地方价值计算

result = result*10 + intValue; 
相关问题