0

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

我在里面放什么???让它工作?

4

3 回答 3

2

尝试这个:

result = result * 10 + intValue;

还:

string[i] > '0'

for循环中似乎很讨厌 - 数字可以包含数字 0,对吗?您可能想使用

string[i] >= '0'

相反,甚至更好,无需重新发明轮子:

#include <ctype.h>

for (i = 0; isdigit(string[i]); ++i)
于 2013-02-13T17:50:25.450 回答
1

好吧,您的字符串是十进制的,以 10 为底,字符串中的每个数字代表以 10 为底的系统中的一个位置。即所以你想做

 result = result * 10 + intValue;

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

于 2013-02-13T17:52:04.470 回答
0

如果您在谈论 base 10,您可能还应该包括0一个数字,因此

string[i] >= '0'

在你的for循环中。和通常的位值计算

result = result*10 + intValue;
于 2013-02-13T18:25:09.717 回答