c++ - 为什么 stoi/atoi 向我提供编译器错误?

标签 c++ string linked-list int

所以我试图将字符串(由数字组成)转换为数字并将它们逐位插入到链表中。

但是,当我尝试它时,我总是遇到编译器错误。

我尝试使用 atoiatoi.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]),但不太确定错误是什么。

最佳答案

atoistoi 将字符串转换为 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/

相关文章:

c++ - 将 DWORD_PTR 转换为类,反之亦然,无需 c 风格转换

c++ - std::endl 和 '\n' 有什么区别

c# - 如何用正则表达式替换包含圆括号(圆括号)的文本?

python - "/1/2/3/".split( "/")

c++ - 链表追加方法

c - 链表不打印?

c++ - Qt:获取当前应用程序调色板

java - 设置十六进制格式

c++ - 什么导致双向链表代码中的段错误

c++ - 链接错误 LNK1120 和 LNK2019 - "unresolved external symbol _main"