C言語 ワイド文字列からマルチバイト文字列に変換 - stdlib.h - [ wcstombs ]

2008.11.09 Sunday | by LRESULT


イド文字列からマルチバイト文字列に変換するには、wcstombs()を使います。

ワイド文字・マルチバイト文字に関しては、こちら

wcstombs()は、ロケールLC_CTYPEの設定に依存する為、
  日本語のマルチバイト文字を扱う際には、setlocale( LC_CTYPE, "jpn" )
  という設定が必要になります。


wcstombs
書式 int wcstombs( char *ms, const wchar_t *ws, size_t n )
機能 ワイド文字列からマルチバイト文字列に変換
引数 char *ms : 変換されたマルチバイト文字列を格納するポインタ
const wchar_t *ws : 変換元のワイド文字列
size_t n : マルチバイト文字のバイト数を指定
戻り値 成功すると、変換したマルチバイト文字列のバイト数を返し、
失敗すると、-1を返します。





サンプルコード
ワイド文字列「テストtestてすと」をマルチバイト文字列に変換し、
ワイド文字の文字数と、ワイド文字列を表示してみます。
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

int main(void)
{
  wchar_t *ws = L"テストtestてすと";
  char ms[100];
  int len;

  setlocale( LC_CTYPE, "jpn" );

  len = wcstombs( ms, ws, 100 );
  printf( "マルチバイト文字長は %dバイト¥n", len );
  printf( "マルチバイト文字は %s¥n", ms );

  return 0;
}



結果
マルチバイト文字長は 16バイト
マルチバイト文字は テストtestてすと
と、表示されます。

ちゃんと変換出来てますね。

カテゴリ:C言語 stdlib.h | 18:06 | comments(1) | trackbacks(0) | -


コメント

管理者の承認待ちコメントです。

| - | 2011/03/27 6:26 PM |

コメントする











この記事のトラックバックURL

トラックバック機能は終了しました。

トラックバック