📅  最后修改于: 2023-12-03 14:53:26.472000             🧑  作者: Mango
在C++编程中,我们经常需要将字符串转换为整数类型(int)。这种转换可以帮助我们处理用户输入、文件读取和网络通信等场景。本文将介绍C++中一些常用的字符串到int的转换方法,并提供相应的代码示例。
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
异常。std::out_of_range
异常。另一种常见的字符串到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进行转换时,可以通过使用>>
操作符将字符串中的内容提取到一个整数变量中。
除了使用库函数,我们还可以根据具体需求自定义字符串到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类和自定义转换函数。根据实际情况,选择合适的转换方法可以提高代码的可读性和健壮性。在使用过程中,要注意错误处理和边界条件,以保证转换的准确性。