Почему Stoi / Atoi дает мне ошибку компилятора? - PullRequest
0 голосов
/ 16 апреля 2019

Итак, я пытаюсь преобразовать строку (состоящую из числа) в цифры и вставлять их цифра за цифрой в связанный список.

Однако, когда я пытаюсь это сделать, я получаю ошибки с компилятором.

Я пытался использовать atoi и atoi.c_str() или stoi, но, похоже, ничего не работает.

string s = to_string(number_sum);

for (int i = 0; i < s.size(); i++) {
     list->val = atoi(s[i].c_str);
     list = list->next;
}

где list - это мой определенный связанный список, и в нем содержится int val для хранения моего номера.

Так что если s = 12345, я хочу, чтобы мой связанный список был: 1->2->3->4->5.

Я тоже попробовал stoi(s[i]), но не совсем уверен, что это за ошибка.

1 Ответ

3 голосов
/ 16 апреля 2019

atoi и stoi преобразуют строку в int. Вы этого не делаете, хотя. Что вы хотите сделать, это конвертировать персонажа в int. Для этого вы просто вычитаете '0' из символа в строке, чтобы получить этот символ как int. Это делает ваш код похожим на

string s = to_string(number_sum);

for (int i = 0; i < s.size(); i++) {
     list->val = s[i] - '0';
     list = list->next;
}
...