Stoi() завершается после выдачи и экземпляра 'std::invalid аргумента в С++ -- Что я делаю не так?C++

Программы на C++. Форум разработчиков
Anonymous
Stoi() завершается после выдачи и экземпляра 'std::invalid аргумента в С++ -- Что я делаю не так?

Сообщение Anonymous »

Совсем новичок в программировании. Пробовал несколько простых проектов в LeetCode и терпел неудачу... Ха! Я пытаюсь взять целое число и преобразовать его в строку, чтобы можно было перевернуть его, а затем повторно преобразовать перевернутую строку обратно в целое число.
Этот код выдает команду «завершить после выбрасывание и экземпляр ошибки «std::invalid аргумент» What(): Stoi. Я потратил час на поиск в Google и других вопросов здесь, на SO, но не могу понять, почему это не работает.
bool isPalindrome(int x) {
std::string backwards ="";
std::string NumString = std::to_string(x);

for (int i = NumString.size(); i >= 0 ; i--) {
backwards += NumString;
}

int check = std::stoi(backwards);

if (check == x) {
return true;
}
else {
return false;
}
}

РЕДАКТИРОВАТЬ: Я думаю, что понял. Он добавлял нулевой символ в конец строки при первом преобразовании, а затем добавлял его в начало строки, когда я ее переворачивал. Пробелы нельзя преобразовать в целые числа.
Итак... Я изменил эту строку, и она работает:
for (int i = NumString.size() - 1; i >= 0 ; i--)


Подробнее здесь: https://stackoverflow.com/questions/712 ... ument-in-c

Вернуться в «C++»