C言語の標準関数を目的別に調べることができる辞典

ホーム > C 標準関数逆引き辞典 > 文字列 > ワイド文字列をマルチバイト文字列に変換する

C 標準関数逆引き辞典

:: reverse dictionary ::

文字列

※ソースファイルについて


ワイド文字列をマルチバイト文字列に変換する

ワイド文字列をマルチバイト文字列に変換するには、wcstombs 関数を使います。

≪宣言≫

#include <locale.h>
#include <stdio.h>
#include <stdlib.h>
wchar_t wcs[] = L"Cプログラム";
char mbs[32];
int len;

setlocale(LC_ALL, "ja");  /* ロケールを日本語に設定 */

len = wcstombs(mbs, wcs, 32);
if (len == -1)
{
  wprintf(L"変換に失敗しました。 [%s]\n", wcs);
  return EXIT_FAILURE;
}

ソースファイル

mbs"Cプログラム" になります。

▼ 関数

size_t wcstombs(char *mbs, const wchar_t *wcs, size_t sz)

ワイド文字列 wcssz バイト分をマルチバイト文字列に変換します。
変換したマルチバイト文字列は、mbs に格納されます。

変換に成功した場合は変換したバイト数、失敗した場合は -1 を返します。

mbsNULL を指定した場合は、変換後のバイト数を返します。

wchar_t wcs[] = L"Cプログラム";
int len;

setlocale(LC_ALL, "ja");  /* ロケールを日本語に設定 */

len = wcstombs(NULL, wcs, 0);

ソースファイル

len11 になります。

なお、「戻り値 = sz」になる場合、マルチバイト文字列の終わりに NULL文字は付きません。 NULL文字を付けたい場合は、sz に変換後のバイト数を超える値を指定します。

len = wcstombs(NULL, wcs, 0);
len = wcstombs(mbs, wcs, len + 1);
●引数

mbs … マルチバイト文字列を格納する文字列バッファ
wcs … ワイド文字列
sz … 変換するバイト数

●戻り値

・変換に成功した場合 … 変換したバイト数
・変換に失敗した場合 … -1
mbsNULL を指定した場合 … 変換後のバイト数

注目キーワード ベスト5

  1. セキュリティ
  2. ホスティング
  3. レンタルサーバ
  4. ファイル復旧
  5. ハードディスク修復

文字列 - string -


ホーム > C 標準関数逆引き辞典 > 文字列 > ワイド文字列をマルチバイト文字列に変換する

Copyright (C) 2005-2007 Noto Watabe. All rights reserved.
e-mail:wmh@always-pg.com