C++将字符串中的数字部分转换成整形数
时间: 2024-09-24 09:18:35 浏览: 34
在C++中,将字符串中的数字部分转换成整型数可以使用`std::stoi`函数,这是`<string>`头文件中的成员函数。这个函数接收一个字符串作为输入,并尝试将其解析为十进制整数。如果字符串能成功表示一个整数,它会返回相应的数值;否则,会抛出`std::invalid_argument`或`std::out_of_range`异常。
以下是基本的使用示例:
```cpp
#include <iostream>
#include <string>
int main() {
std::string str_num = "12345";
int num = std::stoi(str_num);
std::cout << "The integer value is: " << num << std::endl;
// 检查是否转换成功
try {
if (std::cin.fail()) {
std::cerr << "Failed to convert string to integer." << std::endl;
} else {
std::cin.clear(); // 清除错误标志
}
} catch (const std::invalid_argument& e) {
std::cerr << "Invalid argument caught: " << e.what() << std::endl;
}
return 0;
}
```
在这个例子中,`std::cin.fail()`用于检查是否有输入错误导致无法转换,如果输入不是有效的数字,`std::cin.fail()`会返回true。
阅读全文