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

在C++中,将字符串转换为整数是常见的操作,尤其在处理用户输入或解析文本数据时。C++提供了多种方式实现这一功能,其中最常用的是stoi函数和stringstream类。下面详细介绍它们的用法、特点及注意事项。
使用 stoi 函数转换字符串为整数
stoi 是 C++11 引入的字符串处理函数,定义在
基本语法:
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++ 标准库中用于处理字符串流的类,定义在
基本用法步骤:
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~