c++ 如何判断字符串是否是合法的整数字符串 给出代码示例
时间: 2023-08-20 19:19:51 浏览: 162
C++中可以使用`std::stoi()`函数判断字符串是否是合法的整数字符串。如果字符串不是合法的整数字符串,`std::stoi()`函数会抛出`std::invalid_argument`或`std::out_of_range`异常。
下面是一个示例代码,演示如何判断字符串是否是合法的整数字符串:
```cpp
#include <iostream>
#include <string>
bool is_valid_int(const std::string& str) {
try {
std::stoi(str);
return true;
} catch (const std::invalid_argument& ia) {
std::cerr << "Invalid argument: " << ia.what() << std::endl;
return false;
} catch (const std::out_of_range& oor) {
std::cerr << "Out of range: " << oor.what() << std::endl;
return false;
}
}
int main() {
std::string str1 = "123";
std::string str2 = "abc";
std::string str3 = "2147483648";
std::cout << str1 << " is " << (is_valid_int(str1) ? "valid" : "invalid") << " integer" << std::endl;
std::cout << str2 << " is " << (is_valid_int(str2) ? "valid" : "invalid") << " integer" << std::endl;
std::cout << str3 << " is " << (is_valid_int(str3) ? "valid" : "invalid") << " integer" << std::endl;
return 0;
}
```
上述代码中,`is_valid_int()`函数用于判断字符串是否是合法的整数字符串。如果`std::stoi()`函数能够成功将字符串转换为整数,则字符串是合法的整数字符串。如果`std::stoi()`函数抛出异常,则字符串不是合法的整数字符串。在`main()`函数中,我们使用`is_valid_int()`函数判断了三个字符串是否是合法的整数字符串并输出了结果。
阅读全文