2013-10-16 49 views
0

我试图将wstring转换为无符号字符。 我试过_wtoc,但这不存在。C++:将wstring转换为无符号字符

_wto样式中是否存在转换?

谢谢。

+1

[转换一个 '常量WCHAR \ _t \ *' 到“无符号的字符可能重复\ *'](http://stackoverflow.com/questions/7624310/convert-a-const-wchar-t-to-unsigned-char) – csl

+0

我能想到的最接近的是[wcstombs](http:// en .cppreference.com/w/cpp/string/multibyte/wcstombs) –

+1

推测你的意思是'对一个无符号字符数组'什么是输入编码(UCS-2,UTF-16,.. 。)?你想要什么输出编码? (ASCII?UTF-8?EBCDIC?) – Roddy

回答

0

嗯,我做它现在这个样子:

wstring sThis=L"12"; 

unsigned int i; 
i=_wtoi(sThis.c_str()); 

unsigned char c=(unsigned char)i; 
0

我不喜欢这样

wstring wsWideString 
UINT uSize = wsWideString.length(); 
unsigned char * ptrUChar = new unsigned char[uSize+1]; 
memset(ptrUChar ,'\0',uSize+1); 
for(UINT i=0;i<uSize;i++) 
{ 
ptrUChar [i] = wsWideString[i]; 
} 

//when finished 
delete [] ptrUChar ; 
ptrUChar = NULL; 
+0

这是纯粹的魔法!你将一个宽字符分配给一个字符,使你节省50%。巨大的压缩比!但严重的是:这周我见过的最差的代码。为什么在'std :: deque'或'std :: vector'存在时使用'new'和'memset'?为什么在'size_t'已经存在的时候使用一些类型('UINT')?等等,等等。 – IInspectable

+0

哇....谢谢..你自己的代码,然后。 – singh

相关问题