21xrx.com
2024-12-22 21:05:01 Sunday
登录
文章检索 我的文章 写文章
C++字符串转换为整数
2023-07-08 06:38:01 深夜i     --     --
C++ 字符串 转换 整数

C++是一种通用编程语言,最重要的部分之一是处理字符串的能力。字符串是 C++ 中的基本数据类型之一,它由一系列字符组成。在 C++ 中将字符串转换为整数是非常常见的编程问题,需要使用一些标准库函数来完成。

C++ 中将字符串转换为整数是非常方便的,需要使用标准库函数 stoi()。该函数将给定字符串转换为整数,并返回其值。在将字符串转换为整数时,stoi()函数假定该字符串表示整数,并根据字符串中包含的数字计算其值。

std::string str = "1234";

int num = std::stoi(str);

在上面的代码中,我们先将字符串 "1234" 存储在 std::string 类型的变量 str 中。我们随后使用 std::stoi() 函数将该字符串转换为整数,并将其值存储在一个名为 num 的 int 类型变量中。

要注意的是,如果字符串中包含非数字字符,则 std::stoi() 函数将引发 std::invalid_argument 异常。此外,如果字符串表示的整数大于 int 类型可以存储的最大值,则 std::out_of_range 异常将被引发。

为了避免这些异常,你可以使用一个更安全的函数 std::stoi() 的变体 std::stoi_safe()。这个函数的工作原理和 std::stoi() 类似,但如果转换失败,则不会抛出异常。相反,它将返回 -1,因此你需要通过检查函数返回值来确定转换是否成功。

int num = std::stoi_safe(str);

if (num == -1) {

  std::cout << "Error: string '" << str << "' cannot be converted to integer\n";

}

最后,还有一点值得注意的是,如果字符串中包含前导空格或末尾空格,则 std::stoi() 函数将在转换前自动将其删除。这意味着你不必担心这些空格。

在使用 C++ 处理字符串时,将字符串转换为整数是一个非常常见的任务。通过使用标准库函数 std::stoi() 或 std::stoi_safe(),将字符串转换为整数变得非常容易。但要记住,输入的字符串必须是数字,否则将引发异常或返回错误值。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复