Совсем новичок в программировании. Пробовал несколько простых проектов в 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
Stoi() завершается после выдачи и экземпляра 'std::invalid аргумента в С++ -- Что я делаю не так? ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Анализ не работает: завершение вызова после создания экземпляра «std::invalid аргумента»
Anonymous » » в форуме C++ - 0 Ответы
- 114 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Завершение с неперехваченным исключением типа std::invalid_argument: stoi: без преобразования
Anonymous » » в форуме C++ - 0 Ответы
- 46 Просмотры
-
Последнее сообщение Anonymous
-
Мобильная версия