C++如何将字符串转换为整数_C++ stoi函数与stringstream用法详解

admin 百科 12
使用stoi函数可将字符串转换为整数,需包含头文件,支持指定进制和记录转换位置;2. 示例中"12345"被成功转为整数12345。

C++如何将字符串转换为整数_C++ stoi函数与stringstream用法详解-第1张图片-佛山资讯网

在C++中,将字符串转换为整数是常见的操作,尤其在处理用户输入或解析文本数据时。C++提供了多种方式实现这一功能,其中最常用的是stoi函数和stringstream类。下面详细介绍它们的用法、特点及注意事项。

使用 stoi 函数转换字符串为整数

stoi 是 C++11 引入的字符串处理函数,定义在 头文件中,用于将 std::string 直接转换为 int 类型。

基本语法:

int stoi(const std::string& str, size_t* pos = 0, int base = 10);
  • str:要转换的字符串。
  • pos:可选参数,用于记录转换结束的位置(即第一个非法字符的索引)。
  • base:可选参数,指定进制,默认为十进制(10),也可设为2、8、16等。

示例代码:

立即学习“C++免费学习笔记(深入)”;

std::string s = "12345";
int num = stoi(s);
std::cout

如果字符串包含非数字前缀,stoi 会尝试从第一个有效数字开始转换,直到遇到非法字符。若无法转换,会抛出异常:

  • 当字符串为空或不包含有效数字时,抛出 std::invalid_argument
  • 当数值超出 int 范围时,抛出 std::out_of_range

因此建议使用 try-catch 捕获异常:

try {
  std::string s = "abc123";
  int num = stoi(s);
} catch (const std::invalid_argument& e) {
  std::cerr } catch (const std::out_of_range& e) {
  std::cerr }

使用 stringstream 进行类型转换

stringstream 是 C++ 标准库中用于处理字符串流的类,定义在 头文件中。它支持多种类型之间的转换,适用于更复杂的格式化输入输出。

基本用法步骤:

标签: c++ stream

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~