c++ - 为什么 stoi/atoi 会为我提供编译器错误?
问题描述
所以我试图将一个字符串(由一个数字组成)转换为数字并将它们逐个数字地插入到链表中。
但是,当我尝试它时,我不断收到编译器错误。
我尝试使用atoi
and atoi.c_str()
orstoi
但似乎没有任何效果。
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;
}
推荐阅读
- android - OnverificationCompleted() 被调用但没有收到任何 otp
- python - 导入另一个python文件时Django runserver没有运行
- vb.net - Vb-net 在准备表格时隐藏布局
- php - PHP 错误视频无法使用过期/签名的视频嵌入 url 播放
- sql - 获取两个表之间的完全匹配
- scala - 从 scalatest 生成 XML 报告时,有没有办法让“给定”、“何时”、“那么”可见?
- angular - 将文本作为文件发送到具有其他值的后端
- php - 保存取决于所选字段的数据
- python - opencv人脸检测上的矩形不起作用
- google-analytics - 如何在 BigQuery 中查询直接回访者