web-dev-qa-db-ja.com

Cでchar *をwchar *に変換する

Cでchar*文字列をwchar*文字列に変換したいのですが。

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

ありがとう。

16
Crupuk

%hsフラグを付けてswprintfを試してください。

例:

wchar_t  ws[100];
swprintf(ws, 100, L"%hs", "ansi string");
20

setlocale()の後に mbstowcs() が続きます。

4
user541686

あなたが探しているのは

mbstowcs

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

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

2
Franky Rivera

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

0
Christoffer