本文共 2433 字,大约阅读时间需要 8 分钟。
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方法,将字符串转换为对应数值:
有符号整数值
转换时,舍弃所有空白符,直到找到首个非空白符。然后取尽可能多的字符,组成底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 );
转载地址:http://bgnlf.baihongyu.com/