为啥 stoi/atoi 会为我提供编译器错误?

Posted

技术标签:

【中文标题】为啥 stoi/atoi 会为我提供编译器错误?【英文标题】:Why does stoi/atoi provide me with a compiler error?为什么 stoi/atoi 会为我提供编译器错误? 【发布时间】:2019-04-16 13:17:39 【问题描述】:

所以我正在尝试将一个字符串(由一个数字组成)转换为数字并将它们逐个数字地插入到链表中。

但是,当我尝试它时,我不断收到编译器错误。

我尝试使用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-&gt;2-&gt;3-&gt;4-&gt;5

我也试过stoi(s[i]),但不太确定错误是什么。

【问题讨论】:

因为s[i]char,而不是字符串。试试list-&gt;val = s[i];,(或者list-&gt;val = s[i] - '0';,如果你需要从char“转换”到对应的int值)。 【参考方案1】:

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;

【讨论】:

以上是关于为啥 stoi/atoi 会为我提供编译器错误?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Xcode 会为我的模型类的布尔属性生成 NSNumber 属性?

为啥当我单击一个链接时,它会为我的所有链接执行该功能? (Javascipt)

当我将条目插入现有部分时,为啥我的 UITableView 会为我添加另一个部分?

为啥我的显式构造函数会为我的转换运算符创建这种歧义?

为啥将class反编译为java后,java直接编译时有错误

为啥没有返回语句时没有编译器错误?