数值类型和字符串的相互转换
转载:
1.https://www.cnblogs.com/gtarcoder/p/4925592.html 比较实用
string和数值类型转换
c++11提供了to_string方法,可以方便的将各种数值类型转换为 字符串类型:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
std:: string to_string( int value);
std:: string to_string( long int value);
std:: string to_string( long long int value);
std:: string to_string(unsigned int value);
std:: string to_string(unsigned long long int value);
std:: string to_string( float value);
std:: string to_string( double value);
std::wstring to_wstring( int value);
std::wstring to_wstring( long int value);
std::wstring to_wstring( long long int value);
std::wstring to_wstring(unsigned int value);
std::wstring to_wstring(unsigned long long int value);
std::wstring to_wstring( float value);
std::wstring to_wstring( double value);
|
还提供了stoxxx方法,将string转换为各种类型的数据:
1
2
3
4
|
std:: string str = "1000" ;
int val = std::stoi(str);
long val = std::stol(str);
float val = std::stof(str);
|
c++11还提供了字符串(char*)转换为整数和浮点类型的方法:
1
2
3
4
|
atoi: 将字符串转换为 int
atol: 将字符串转换为 long
atoll:将字符串转换为 long long
atof: 将字符串转换为浮点数 |
宽窄字符转换
std::wstring_convert使std::string和std::wstring之间的相互转换变得很方便,如代码
1
2
3
4
5
6
7
8
9
10
|
std::wstring wide_str = L "中国人" ;
std::wstring_convert<std::condecvt<wchar_t, char , std::mbstate_t>>
converter( new std::codecvt<wchar_t, char , std::mbstate_t>( "CHS" );
std:: string narrow_str = converter.to_bytes(wide_str);
std::wstring wstr = converter.from_bytes(narrow_str); std::cout << narrow_str << std::endl; wcout.imbue(std::locale( "chs" ));
std::wcout << wstr << std::endl; std::cout << wstr.size() << " " << wstr.length() << endl;
std::cout << narrow_str.size() << " " << narrow_str.length() << endl;
|