c++ - 将字符串的子部分转换为 int C++

标签 c++ string int

我有一个如下所示的字符串:

水平合并: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/

相关文章:

c++ - 安全地使用 C 符号和 header ?

c++ - 使用非类型模板参数专门化模板模板参数

c++ - 在 C++ 中,返回指向非常量对象的指针的 const 方法是否被认为是不好的做法?

Javascript:确定字符串中的所有字符是否都是唯一的,如果不是,则删除重复的字符

Java 数组属性越界异常

swift - 一元运算符++ 不能应用于 Int 类型的操作数

python - 可以将 Python 整数存储在少于 12 个字节中吗?

c++ - 直接使用 postgres JSONB

c++ - 如何生成一个随机的、不重复的字符串 C++

c++ - 如何在 C++ 的 'int' 中转换和插入 'char'?