int stringToInt(string str)
{
if (str.length() == 1){
return (str[0] - '0');
}
double y = stringToInt(str.substr(1));
double x = str[0] - '0';
x = x * pow(10, str.length() - 1) + y;
return int(x);
}
int main(){
string s1= "12345";
string s2= "123456789101";
cout<<"s1"<<stringToInt(s1)<<endl;
cout<<"s2"<<stringToInt(s2)<<endl;
}
Правильный вывод для s1 = 12345.
Но для s2 = "123456789101" он дает неправильный вывод (отрицательное число !!!) Кто-нибудь может сказать, что идет не так? Что я должен сделать, чтобы преобразовать длинные строки в целое число с помощью рекурсивной функции?