20

C言語で文字char*列を文字列に変換したい.wchar*

私は多くの答えを見つけましたが、それらのほとんどは C++ 用です。私たちを手伝ってくれますか?

ありがとう。

4

5 に答える 5

27

フラグで試してみてくださいswprintf%hs

例:

wchar_t  ws[100];
swprintf(ws, 100, L"%hs", "ansi string");
于 2011-01-28T08:36:58.087 に答える
4

setlocale()が続きmbstowcs()ます。

于 2011-01-28T08:23:47.530 に答える
3

あなたが探しているのは

mbstowcs

char* から char* へのコピー関数と同じように機能します

ただし、この場合は wchar_t* に保存しています

于 2012-11-18T09:35:00.210 に答える
0

Windows API を利用できる場合は、変換関数MultiByteToWideCharを使用すると、さまざまなエンコーディングから UTF-16 への構成可能な文字列変換が提供されます。移植性をあまり気にせず、さまざまなロケール設定が文字列変換に与える影響を正確に把握したくない場合は、これがより適切かもしれません。

于 2011-01-28T08:49:50.457 に答える
-3

現在ANSI文字がある場合。各文字の前に 0 ('\0') を挿入し、それらを wchar_t* にキャストするだけです。

于 2016-04-08T06:39:40.073 に答える