2013-07-19 31 views
0

對不起,這個業餘問題,我想在一個unicode字符串中進行一些搜索和比較。unicode或任何其他編碼數據如何存儲在內存中? (win32)

我感到有點困惑unicode-16/wchar_t,在Windows操作系統中,這是否存儲方式爲uint16數組一樣嗎?

我是說如果我可以用這種方式沒有任何麻煩?

wchar_t a[100]; 
somefunction((uint16 *)a); 
//treat a as an array of uint16 data and do something with it. 
+1

在Windows上,是的。如果你想更便攜,請查看'std :: wstring_convert':http://en.cppreference.com/w/cpp/locale/wstring_convert – aschepler

回答

3

是的,它的wchar_t陣列,其是uint16_t。它也(通常)以NUL結尾,意味着字符串末尾有一個零值wchar_t

+0

謝謝,所以上例中的wchar_t數組a實際上是一個數組內存中有101個字(16位),通常是程序員,通常只有前100個字是可用的? – user2188453

+0

是的,但請注意它是特定於平臺的,即它只在具有Microsoft Compilers的Windows上運行。 Cygwin上的大多數Unices甚至gcc都將'wchar_t'定義爲'uint32_t'。 –

+1

@ user2188453:不,它是一個由100個單詞組成的數組,其中最多99個可以包含您的文本,而最後一個文本後面的文本應該爲0。 – RichieHindle

相關問題