从字符串转换为整数的函数反向输出整数

时间:2013-04-19 13:01:44

标签: c++

我有以下代码,它接受一个字符串(数字)并将其转换为整数值。但相反,整数输出是相反的。例如,如果您键入5999,则会得到9995作为回报。我做错了什么?

int stringToInt(string myString, int m) {
    if (m == ((int)myString.length()-1))
        return (myString[m]-48);
    else
        return (10*(stringToInt(myString, m+1)) + (myString[m]-48));
}

1 个答案:

答案 0 :(得分:2)

因为在数字表示法中,数字顺序从左向右减小,所以需要在字符串的末尾(最低位数字)开始递归。您可以将初始m设为myString.size()-1,然后反向进行:

int stringToInt(string myString, int m) {
if (m == 0)
    return (myString[m]-48);
else
    return (10*(stringToInt(myString, m-1)) + (myString[m]-48));
}