マルチバイト⇔ワイドキャラクタ

マルチバイト⇔ワイドキャラクタの相互変換です。

前田稔の超初心者のプログラム入門

プログラムの説明

  1. ソースプログラムです。
    ファイル名 説明
    wchar2char.cpp マルチバイト⇔ワイドキャラクタ
  2. マルチバイトとワイドキャラクタの変換を行うときは windows.h をインクルードして下さい。
    wstr で定義した文字列を str に変換してみましょう。
    次に、str2 で定義した文字列を wstr2 に変換します。
        wchar_t wstr[] = L"12345ABCDE";
        char    str[24];
        wchar_t wstr2[24];
        char    str2[] = "67890FGHIJ";
        
  3. WideCharToMultiByte() がワイドキャラクタをマルチバイトに変換する関数です。
    wstr, -1 でワイドキャラクタの領域を指定します。
    -1 を指定すると、文字列の終わりを示す NULL までが文字列長になります。
    str, 24 で受け取り側の領域を指定します。
    変換に失敗するとゼロが、成功するとバッファに書き込まれたバイト数が返ります。
    WideCharToMultiByte(CP_ACP,0,wstr,-1,str,24,NULL,NULL);
  4. MultiByteToWideChar() がマルチバイトをワイドキャラクタに変換する関数です。
    str2, -1 でマルチバイトの領域を指定します。
    -1 を指定すると、文字列の終わりを示す NULL までが文字列長になります。
    wstr2, 24 で受け取り側の領域を指定します。
    変換に失敗するとゼロが、成功するとバッファに書き込まれたワイド文字の数が返ります。
    MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED,str2,-1,wstr2,24);
  5. .NET の環境で TEXT FILE を扱うときは、簡単に変換できる関数が別途用意されています。
    詳細は「超初心者のプログラム入門(C#)/File 入出力/TEXT File の入力」及び「TEXT File の出力」を参照して下さい。

超初心者のプログラム入門(C/C++)