1、字符串转为有符号整数
定义:
int atoi( const char *str );
long atol( const char *str );
long long atoll( const char *str );
int stoi( const std::string& str, std::size_t* pos = 0, int base = 10 );
int stoi( const std::wstring& str, std::size_t* pos = 0, int base = 10 );
long stol( const std::string& str, std::size_t* pos = 0, int base = 10 );
long stol( const std::wstring& str, std::size_t* pos = 0, int base = 10 );
long long stoll( const std::string& str, std::size_t* pos = 0, int base = 10 );
long long stoll( const std::wstring& str, std::size_t* pos = 0, int base = 10 );
参数:
str - 要转换的字符串
pos - 存储已处理字符数的整数的地址
base - 数的底
返回值:
对应 str 内容的整数值。
用法:
#include <string>
int main()
{
const char* pStr = "99";
std::cout << std::atoi(pStr) << std::endl;//99
std::string str("80");
std::cout << std::stoi(str) << std::endl;//80
}
2、字符串转为无符号整数
定义:
unsigned long stoul( const std::string& str, std::size_t* pos = 0, int base = 10 );
unsigned long stoul( const std::wstring& str, std::size_t* pos = 0, int base = 10 );
unsigned long long stoull( const std::string& str, std::size_t* pos = 0, int base = 10 );
unsigned long long stoull( const std::wstring& str, std::size_t* pos = 0, int base = 10 );
参数:
str - 要转换的字符串
pos - 存储被处理字符数的整数的地址
base - 数字基底
返回值:
转换到指定无符号整数类型的字符串。
3、字符串转为浮点值
定义:
double atof( const char* str );
float stof( const std::string& str, std::size_t* pos = 0 );
float stof( const std::wstring& str, std::size_t* pos = 0 );
double stod( const std::string& str, std::size_t* pos = 0 );
double stod( const std::wstring& str, std::size_t* pos = 0 );
long double stold( const std::string& str, std::size_t* pos = 0 );
long double stold( const std::wstring& str, std::size_t* pos = 0 );
参数:
str - 要转换的 字符串
pos - 存储已处理字符数的整数的地址
返回值:
转换为指定浮点类型的字符串。
用法:
int main()
{
const char* pStr = "99.25696587";
double dValue1 = std::atof(pStr);//99.256965870000002
std::string str("80.26548712");
double dValue2 = std::stod(str);//80.265487120000003
}
4、整数或浮点数转为字符串
定义:
std::string to_string( int value );
std::string to_string( long value );
std::string to_string( long long value );
std::string to_string( unsigned value );
std::string to_string( unsigned long value );
std::string to_string( unsigned long long value );
std::string to_string( float value );
std::string to_string( double value );
std::string to_string( long double value );
std::wstring to_wstring( int value );
std::wstring to_wstring( long value );
std::wstring to_wstring( long long value );
std::wstring to_wstring( unsigned value );
std::wstring to_wstring( unsigned long value );
std::wstring to_wstring( unsigned long long value );
std::wstring to_wstring( float value );
std::wstring to_wstring( double value );
std::wstring to_wstring( long double value );
参数:
value - 需要转换的数值
返回值:
一个包含转换后值的字符串
用法:
int main()
{
int nA = 94;
double dB = 349.4546;
std::string str1 = std::to_string(nA);
std::string str2 = std::to_string(dB);
std::cout << str1 << std::endl;//94
std::cout << str2 << std::endl;//349.454600
}