将字符串转换为int
std::stoi函数:
格式:std:stoi(str, pos, base);
定义于头文件string中
str:要处理的字符串
pos:要处理的开始位置(若不输入参数,默认从第一位开始)
base:进制数(若不输入参数默认为10进制)
示例:
int main()
{
std::string str1 = "45";
std::string str2 = "3.14159";
std::string str3 = "31337 with words";
std::string str4 = "words and 2";
int myint1 = std::stoi(str1);
int myint2 = std::stoi(str2);
int myint3 = std::stoi(str3);
// 错误: 'std::invalid_argument'
// int myint4 = std::stoi(str4);
std::cout << "std::stoi(\"" << str1 << "\") is " << myint1 << '\n';
std::cout << "std::stoi(\"" << str2 << "\") is " << myint2 << '\n';
std::cout << "std::stoi(\"" << str3 << "\") is " << myint3 << '\n';
//std::cout << "std::stoi(\"" << str4 << "\") is " << myint4 << '\n';
}
输出:
std::stoi("45") is 45
std::stoi("3.14159") is 3
std::stoi("31337 with words") is 31337
将字符串转换为浮点型:
std::stof函数:
格式std::stof(str, pos);
定义于头文件string中
str:要处理的字符串
pos:要处理的开始位置(若不输入参数,默认从第一位开始)
将字符转换为数字:
std::from_chars函数(C++17):
格式std::stof(first, last, value, base);
定义于头文件charconv中
first、last:要分析的合法字符范围(const char*)
value:储存输出的参数的对象
base:进制数(默认为10进制)
示例:
#include <iostream>
#include <charconv>
#include <array>
int main()
{
std::array<char, 10> str{
"42"};
int result;
std::from_chars( str.data(), str.data()+str.size(),result );
std::cout << result;
return 0;
}
输出:
42