Latest web development tutorials

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

C標準ライブラリ -  <stdlib.h>に含ま C標準ライブラリ- <stdlib.h>に含ま

説明

Cライブラリ関数はwctombを(のchar * strの、wchar_t型のint型のwchar)文字配列にstrのポイントの開始時に、そのマルチバイト表現と記憶するにワイド文字wcharですが

声明

ここで、()文wctomb関数です。

int wctomb(char *str, wchar_t wchar)

パラメータ

  • STR -マルチバイト文字を格納するのに十分な大きさの配列へのポインタ。
  • wchar -タイプのwchar_tワイド文字。

戻り値

  • strがNULLでない場合、wctomb()関数は、バイト配列に書き込まれたバイト数を返します。 wchar文字がマルチバイトシーケンスとして表現することができない場合には-1を返します。
  • strがNULLの場合、エンコーダは、シフト状態を持っている場合、wctomb()関数は、エンコーディングがステートレスである場合、それはゼロを返し、0以外の値を返します。

以下の例は、()関数を使用するwctombを示しています。

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

int main()
{
   int i;
   wchar_t wc = L'a';
   char *pmbnull = NULL;
   char *pmb = (char *)malloc(sizeof( char ));

   printf("要转换的宽字符:\n");
   i = wctomb( pmb, wc );
   printf("被转换的字符:%u\n", i);
   printf("多字节字符:%.1s\n", pmb);

   printf("当要转换的字符为 NULL 时尝试转换:\n");
   i = wctomb( pmbnull, wc );
   printf("被转换的字符:%u\n", i);
   /* 不会输出任何值 */
   printf("多字节字符:%.1s\n", pmbnull);
   
   return(0);
}

それでは、以下になります上記のプログラムを、コンパイルして実行してみましょう:

要转换的宽字符:
被转换的字符:1
多字节字符:a
当要转换的字符为 NULL 时尝试转换:
被转换的字符:0
多字节字符:

C標準ライブラリ -  <stdlib.h>に含ま C標準ライブラリ- <stdlib.h>に含ま