在C ++中将字符串的数字作为整数[重复]
Posted
技术标签:
【中文标题】在C ++中将字符串的数字作为整数[重复]【英文标题】:Take a digit of a string as an integer in C++ [duplicate] 【发布时间】:2020-04-07 17:30:48 【问题描述】:我想将字符串111
的第一个数字添加到整数x = 0
,使其等于
x = 0 + 1 = 1
以下代码采用字符1
,而不是整数1
:
int x = 0;
string str = "111";
x += str[1];
std::stoi
也不起作用:
x += std::stoi(str[1]);
【问题讨论】:
stoi
不起作用,因为根据 cpp 引用,stoi
将string
作为参数,而不是char
。 str[1]
是单个字符,而不是 string
。
【参考方案1】:
将数字转换为整数的简单方法是从中减去'0'
。
x += str[0] - '0';
这是因为保证十进制数字的编码是连续的。所以减去最低位就可以得到数字值。
您的另一个错误是字符串的第一个字符是str[0]
而不是str[1]
。
【讨论】:
以上是关于在C ++中将字符串的数字作为整数[重复]的主要内容,如果未能解决你的问题,请参考以下文章