📜  c++ string to int - C++ (1)

📅  最后修改于: 2023-12-03 15:13:57.299000             🧑  作者: Mango

C++ String 转 int

在 C++ 中, 我们可以使用 std::stoi 函数将一个字符串转换成整数类型. 这个函数需要包含头文件 #include <string>.

下面是一个简单的例子:

#include <iostream>
#include <string>

int main() {
    std::string str = "123";
    int num = std::stoi(str);
    std::cout << "The integer value is: " << num << std::endl;
    return 0;
}

输出:

The integer value is: 123

需要注意的是, 如果字符串中包含非数字字符, 在转换的时候会抛出一个 std::invalid_argument 异常.

我们可以在上面的例子中添加一个错误处理:

#include <iostream>
#include <string>
#include <stdexcept>

int main() {
    std::string str = "123abc";
    try {
        int num = std::stoi(str);
        std::cout << "The integer value is: " << num << std::endl;
    } catch(const std::invalid_argument& e) {
        std::cerr << "Invalid argument: " << e.what() << std::endl;
    }
    return 0;
}

输出:

Invalid argument: stoi

除了 std::stoi, C++ 11 还引入了其它一些函数来在不同的进制之间进行转换. 例如:

  • std::stol: 转换成长整型数类型.
  • std::stoll: 转换成长长整型数类型.
  • std::stoul: 转换成无符号长整型数类型.
  • std::stoull: 转换成无符号长长整型数类型.
  • std::stof: 转换成单精度浮点数类型.
  • std::stod: 转换成双精度浮点数类型.
  • std::stold: 转换成长双精度浮点数类型.

可以根据需要选择对应的函数进行转换.

希望这篇文章对你有所帮助!