c++11之后数值与字符串之间的转换变得更加方便。
数值转换为字符串
to_string()
函数声明在头文件<string>
中。
// 头文件 <string>
string to_string (int val);
string to_string (long val);
string to_string (long long val);
string to_string (unsigned val);
string to_string (unsigned long val);
string to_string (unsigned long long val);
string to_string (float val);
string to_string (double val);
string to_string (long double val);
字符串转换为浮点数
stof( const std::string& str, std::size_t* pos = 0 );//float
stod( const std::string& str, std::size_t* pos = 0 );//double
stold( const std::string& str, std::size_t* pos = 0 );//long double
字符串转换为整数
stoi( const std::string& str, std::size_t* pos = 0, int base = 10 );//int
stol( const std::string& str, std::size_t* pos = 0, int base = 10 );//long
stoll( const std::string& str, std::size_t* pos = 0, int base = 10 );//long long
stoul( const std::string& str, std::size_t* pos = 0, int base = 10 );//unsigned long
stoull( const std::string& str, std::size_t* pos = 0, int base = 10 );//unsigned long long
str:要转换的字符串
pos:传出参数, 记录从哪个字符开始无法继续进行解析, 比如: 123abc, 传出的位置为3
base:若 base 为 0 ,则自动检测数值进制:若前缀为 0 ,则为八进制,若前缀为 0x 或 0X,则为十六进制,否则为十进制。
除第一个参数外,其余默认即可。
参考
https://subingwen.cn/cpp/convert/#2-