为什么stoi / atoi为我提供编译器错误?

时间:2019-04-16 13:17:40

标签: 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是我定义的链接列表,并且具有保存我的电话号码的整数。

因此,如果使用s = 12345,我希望链接列表为:1->2->3->4->5

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

1 个答案:

答案 0 :(得分:3)

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;
}