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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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