为啥 stoi/atoi 会为我提供编译器错误?
Posted
技术标签:
【中文标题】为啥 stoi/atoi 会为我提供编译器错误?【英文标题】:Why does stoi/atoi provide me with a compiler error?为什么 stoi/atoi 会为我提供编译器错误? 【发布时间】:2019-04-16 13:17:39 【问题描述】:所以我正在尝试将一个字符串(由一个数字组成)转换为数字并将它们逐个数字地插入到链表中。
但是,当我尝试它时,我不断收到编译器错误。
我尝试使用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])
,但不太确定错误是什么。
【问题讨论】:
因为s[i]
是char
,而不是字符串。试试list->val = s[i];
,(或者list->val = s[i] - '0';
,如果你需要从char
“转换”到对应的int
值)。
【参考方案1】:
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;
【讨论】:
以上是关于为啥 stoi/atoi 会为我提供编译器错误?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Xcode 会为我的模型类的布尔属性生成 NSNumber 属性?
为啥当我单击一个链接时,它会为我的所有链接执行该功能? (Javascipt)
当我将条目插入现有部分时,为啥我的 UITableView 会为我添加另一个部分?