C ++文字列変換幅

転載:https://www.cnblogs.com/xuejianhui/p/3740243.html

1つの#include < ストリング >
 2  
3のstd :: 文字列 ws2s(CONSTのstd :: wstringの&WS)
 4  {
 5      のstd :: 文字列 curLocale =はsetlocale(LC_ALL、NULL);        // curLocale = "C"; 
6      はsetlocale(LC_ALL、" CHS " )。
7      のconstのwchar_t * _Source = ws.c_str()。
8      size_tの_Dsize = 2 * ws.size()+ 1 9      のchar * _DEST = 新しい CHAR [_Dsize]。
10      のmemset(_DEST、0 、_Dsize)。
11      wcstombs(_DEST、_Source、_Dsize)。
12      のstd :: 文字列の結果= _DEST。
13      削除[] _DEST。
14      はsetlocale(LC_ALL、curLocale.c_str())。
15      リターン結果;
16  }
 17  
18のstd :: wstringのs2ws(CONSTのstd :: 文字列S)
 19  {
 20      にsetlocale(LC_ALL、" CHS " )。 
21      のconst  char型 * _Source = s.c_str()。
22      size_tの_Dsize = s.size()+ 1 23      のwchar_t * _DEST = 新しいのwchar_t [_Dsize]。
24      wmemset(_DEST、0 、_Dsize)。
25      mbstowcsは(_DEST、_Source、_Dsize)。
26      のstd :: wstringの結果= _DEST。
27      削除[] _DEST。
28      はsetlocale(LC_ALL、" C " )。
29      リターン結果;
30  }
 31  
32  // C ++ストリング和wstringの之间的互相转换函数:
33   A = " XXXX ";
34 wstringのbの(a.begin()、a.end())。

 

おすすめ

転載: www.cnblogs.com/Toya/p/11609938.html