目录
C++11中提供了字符串与数值类型间直接转换的函数(定义在<string>头文件)。
数值转字符串
c++11提供了to_string方法,将各种数值类型转换为字符串类型:
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 );
c++11提供了to_wstring方法,将各种数值类型转换为宽字符串类型:
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 );
字符串转数值
C++11中提供了stoxxx方法,将字符串转换为对应数值:
- 若不能进行转换,则抛出std::invalid_argument;
- 若转换值会落在结果类型的范围外,则抛出std::out_of_range;
有符号整数值
转换时,舍弃所有空白符,直到找到首个非空白符。然后取尽可能多的字符,组成底n(其中 n=base )的整数表示,并将它们转换成一个整数值。
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 );
无符号整数值
转换时,舍弃所有空白符,直到找到首个非空白符。然后取尽可能多的字符,组成底n(其中 n=base )的无符号整数表示,并将它们转换成一个整数值。
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 );
浮点数
转换时,舍弃所有空白符,直到找到首个非空白符。然后取尽可能多的字符,以构成合法的浮点数表示,并将它们转换成一个整数值。
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 );