C++ stoi函数
stoi 是一个将字符串转换为整数的 C++标准库 函数。它代表着 “string to integer” (字符串到整数)。它接受一个字符串作为输入,并返回对应的整数值。如果输入的字符串不代表一个有效的整数,该函数可能会引发一个 std::invalid_argument 类型的异常。
在C++中使用stoi的示例:
#include
#include
int main() {
std::string str1 = "123";
int num1 = std::stoi(str1);
std::cout<< num1 << std::endl; // Output: 123
std::string str2 = "-456";
int num2 = std::stoi(str2);
std::cout<< num2 << std::endl; // Output: -456
std::string str3 = "7.89";
try {
int num3 = std::stoi(str3);
} catch (std::invalid_argument&e) {
std::cout<< "Invalid argument: " << str3 << std::endl;
}
return 0;
}
输出
123
-456
在第一个示例中,字符串 “123” 被转换为整数 123 。在第二个示例中,字符串 “-456” 被转换为整数 -456 。在第三个示例中,字符串”7.89″不是一个有效的整数,所以抛出了一个 std::invalid_argument 异常。 其他示例代码片段:
#include
#include
int main() {
std::string str1 = "100";
int num1 = std::stoi(str1);
std::cout<< num1 << std::endl; // Output: 100
std::string str2 = "200";
int num2 = std::stoi(str2, 0, 16);
std::cout<< num2 << std::endl; // Output: 512
std::string str3 = "300";
int num3 = std::stoi(str3, nullptr, 8);
std::cout<< num3 << std::endl; // Output: 192
std::string str4 = "abc";
try {
int num4 = std::stoi(str4);
} catch (std::invalid_argument&e) {
std::cout<< "Invalid argument: " << str4 << std::endl;
}
return 0;
}
输出结果
100
512
192
Invalid argument: abc
第一个示例将字符串 “100” 转换为十进制整数 100 。在第二个示例中,将字符串 “200” 转换为十六进制整数 512,将0作为第二个参数和16作为第三个参数传递给 stoi 函数。
在第三个示例中,将字符串 “300” 转换为八进制整数 192 ,将nullptr作为第二个参数和8作为第三个参数传递给 stoi 函数。
在第四个示例中,字符串 “abc” 不是一个有效的整数,因此会抛出一个 std::invalid_argument 异常。