📜  字符串到 int c++ (1)

📅  最后修改于: 2023-12-03 14:53:26.472000             🧑  作者: Mango

字符串到int的转换(C++)

在C++编程中,我们经常需要将字符串转换为整数类型(int)。这种转换可以帮助我们处理用户输入、文件读取和网络通信等场景。本文将介绍C++中一些常用的字符串到int的转换方法,并提供相应的代码示例。

1. 使用stoi函数

C++标准库中的stoi函数(string to integer)可以将字符串转换为int类型。以下是该函数的使用示例:

#include <iostream>
#include <string>

int main() {
    std::string str = "12345";
    int num = std::stoi(str);
    std::cout << "Converted integer: " << num << std::endl;
    return 0;
}

输出结果:

Converted integer: 12345

使用stoi函数时需要注意以下几点:

  • 如果字符串中包含非数字字符,则会抛出std::invalid_argument异常。
  • 如果转换后的整数超出了int类型的范围,则会抛出std::out_of_range异常。
2. 使用stringstream类

另一种常见的字符串到int的转换方法是使用stringstream类。这个类在头文件<sstream>中定义。以下是使用stringstream进行转换的示例:

#include <iostream>
#include <sstream>
#include <string>

int main() {
    std::string str = "54321";
    std::stringstream ss(str);
    int num;
    ss >> num;
    std::cout << "Converted integer: " << num << std::endl;
    return 0;
}

输出结果:

Converted integer: 54321

值得注意的是,使用stringstream进行转换时,可以通过使用>>操作符将字符串中的内容提取到一个整数变量中。

3. 自定义转换函数

除了使用库函数,我们还可以根据具体需求自定义字符串到int的转换函数。下面是一个简单的示例:

#include <iostream>
#include <string>

int convertToInt(const std::string& str) {
    int result = 0;
    int sign = 1;
    size_t i = 0;

    if (str[0] == '-') {
        sign = -1;
        i++;
    }

    for (; i < str.length(); i++) {
        result = result * 10 + (str[i] - '0');
    }

    return result * sign;
}

int main() {
    std::string str = "987";
    int num = convertToInt(str);
    std::cout << "Converted integer: " << num << std::endl;
    return 0;
}

输出结果:

Converted integer: 987

在自定义转换函数时,我们可以根据具体需求添加一些边界条件和错误处理逻辑。

总结

本文介绍了在C++中将字符串转换为整数的方法,包括使用stoi函数、stringstream类和自定义转换函数。根据实际情况,选择合适的转换方法可以提高代码的可读性和健壮性。在使用过程中,要注意错误处理和边界条件,以保证转换的准确性。