C-standard-library-c-function-mbstowcs

提供:Dev Guides
移動先:案内検索

Cライブラリ関数-mbstowcs()

説明

Cライブラリ関数 size_t mbstowcs(schar_t pwcs、const char * str、size_t n)は、引数 *str が指すマルチバイト文字の文字列を pwcs が指す配列に変換します。

宣言

以下は、mbstowcs()関数の宣言です。

size_t mbstowcs(schar_t *pwcs, const char *str, size_t n)

パラメーター

  • pwcs -これは、最大長のワイド文字列を格納するのに十分な長さのwchar_t要素の配列へのポインタです。
  • str -これは、解釈されるCマルチバイト文字列です。
  • n -これは、解釈されるwchar_t文字の最大数です。

戻り値

この関数は、終了ヌル文字を除く、変換された文字数を返します。 無効なマルチバイト文字が検出されると、-1値が返されます。

次の例は、mbstowcs()関数の使用法を示しています。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main () {
   int len;
   char *pmbnull  = NULL;
   char *pmb = (char *)malloc( MB_CUR_MAX );
   wchar_t *pwc = L"Hi";
   wchar_t *pwcs = (wchar_t *)malloc( sizeof( wchar_t ));

   printf("Converting to multibyte string\n");
   len = wcstombs( pmb, pwc, MB_CUR_MAX);
   printf("Characters converted %d\n", len);
   printf("Hex value of first multibyte character: %#.4x\n", pmb);

   printf("Converting back to Wide-Character string\n");
   len = mbstowcs( pwcs, pmb, MB_CUR_MAX);
   printf("Characters converted %d\n", len);
   printf("Hex value of first wide character %#.4x\n\n", pwcs);

   return(0);
}

次の結果を生成する上記のプログラムをコンパイルして実行しましょう-

Converting to multibyte string
Characters converted 1
Hex value of first multibyte character: 0x19a60010
Converting back to Wide-Character string
Characters converted 1
Hex value of first wide character 0x19a60030