我有一个如下所示的字符串:
水平合并:4
我将整行存储为字符串,并且可以使用类似 linestring[30] 的方法访问数字 4,其中 linestring 是将整行存储为的字符串。我试图以整数而不是字符串的形式访问数字 4。我怎样才能做到这一点?我试过使用 atoi(linestring[30].c_str());但这不喜欢对线串有参数。我不能使用外部库,例如 boost 等。我该怎么做?
最佳答案
使用 substr
而不是 operator[]
。它会给你另一个 std::string
,而不是 char
。然后使用 std::stoi
将字符串转换为整数。
或者,使用从 operator[]
返回的 char
创建一个新的 std::string
来应用 std::stoi
.
在 C++11 之前的版本中,使用 std::istringstream
而不是 std::stoi
。
顺便说一下,远离atoi
。如果 "0"
应该是有效输入,则无法进行错误检查。
关于c++ - 将字符串的子部分转换为 int C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28794521/