在C++项目中,有多种方法可以将字符串转换为数字
使用C++标准库中的函数:
std::stoi
:将字符串转换为int。std::stol
:将字符串转换为long。std::stoll
:将字符串转换为long long。std::stoul
:将字符串转换为unsigned long。std::stoull
:将字符串转换为unsigned long long。std::stof
:将字符串转换为float。std::stod
:将字符串转换为double。std::stold
:将字符串转换为long double。示例:
#include<iostream>
#include<string>
#include <stdexcept>
int main() {
std::string str_num = "42";
try {
int num = std::stoi(str_num);
std::cout << "The number is: "<< num<< std::endl;
} catch (const std::invalid_argument& e) {
std::cerr << "Invalid argument: " << e.what()<< std::endl;
} catch (const std::out_of_range& e) {
std::cerr << "Out of range: " << e.what()<< std::endl;
}
return 0;
}
使用C语言风格的函数(不推荐):
atoi
:将字符串转换为int。atol
:将字符串转换为long。atoll
:将字符串转换为long long。atof
:将字符串转换为double。示例:
#include<iostream>
#include <cstdlib>
#include<string>
int main() {
std::string str_num = "42";
int num = atoi(str_num.c_str());
std::cout << "The number is: "<< num<< std::endl;
return 0;
}
使用自定义函数:
如果上述方法无法满足需求,可以编写自定义函数来实现字符串到数字的转换。这可能涉及到处理特殊情况、错误检查等。
在选择合适的字符串转数函数时,请考虑以下因素:
根据项目需求和场景,选择最适合的字符串转数函数。