C ++:如何在不使用任何内置函数的情况下将字符串转换为整数

时间:2015-11-26 12:02:08

标签: c++

我正在尝试将字符串转换为整数并在此之后执行一些算术。

char string[10];

如果字符串只有一个单词,我可以这样做:

string[0]-'0'

如果字符串包含多个字符,如何将其转换为整数。

2 个答案:

答案 0 :(得分:4)

最好使用内置函数,但是如果你想手动完成,你需要循环遍历字符串中实际为数字的所有字符。由于这是在base-10中,所以每次循环时只需将累加器乘以10:

int strToInt (const char *str) {
    int accumulator = 0;
    int sign = 1;

    if (*str == '-') {
        str++;
        sign = -1;
    }

    while (*str >= '0' && *str <= '9') {
        accumulator *= 10;
        accumulator += *str - '0';
        str++;
    }

    return accumulator * sign;
}

答案 1 :(得分:1)

int i,ans;
char num[] = "5678";
int l = strlen(num);

ans = 0;
for(i=0;i<l;i++)
ans = ans*10 + (num[i]-'0');

printf("%d\n",ans);