所以我试图将字符串(由数字组成)转换为数字并将它们逐位插入到链表中。
但是,当我尝试它时,我总是遇到编译器错误。
我尝试使用 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])
,但不太确定错误是什么。
最佳答案
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;
}
关于c++ - 为什么 stoi/atoi 向我提供编译器错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55709140/