C言語で文字char*
列を文字列に変換したい.wchar*
私は多くの答えを見つけましたが、それらのほとんどは C++ 用です。私たちを手伝ってくれますか?
ありがとう。
フラグで試してみてくださいswprintf
。%hs
例:
wchar_t ws[100];
swprintf(ws, 100, L"%hs", "ansi string");
setlocale()
が続きmbstowcs()
ます。
あなたが探しているのは
mbstowcs
char* から char* へのコピー関数と同じように機能します
ただし、この場合は wchar_t* に保存しています
Windows API を利用できる場合は、変換関数MultiByteToWideCharを使用すると、さまざまなエンコーディングから UTF-16 への構成可能な文字列変換が提供されます。移植性をあまり気にせず、さまざまなロケール設定が文字列変換に与える影響を正確に把握したくない場合は、これがより適切かもしれません。
現在ANSI文字がある場合。各文字の前に 0 ('\0') を挿入し、それらを wchar_t* にキャストするだけです。