當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


C語言 wctomb用法及代碼示例

C語言stdlib頭文件(stdlib.h)中wctomb函數的用法及代碼示例。

用法:

int wctomb (char* pmb, wchar_t wc);
將寬字符轉換為多字節序列
寬廣的性格wc轉換為等效的多字節並存儲在由指向的數組中pmb。該函數以字節為單位返回等效的多字節序列的長度(以字節為單位)pmb調用後。

wctomb有自己的內部換檔狀態,隻有在調用此函數時才需要進行更改。使用空指針作為對函數的調用pmb重置狀態(並返回多字節序列是否為state-dependent)。

此函數的行為取決於LC_CTYPE所選類別C語言環境

參數

pmb
指向足以容納多字節序列的數組的指針。
當前語言環境中字符的多字節序列的最大長度為MB_CUR_MAX個字節。
或者,可以使用空指針,在這種情況下,函數會將其內部移位狀態重置為初始值,並返回多字節序列是否使用state-dependent編碼。
wc
寬字型wchar_t

返回值

如果參數傳遞為pmb不是空指針,即寫入的字符的大小(以字節為單位)pmb返回。如果沒有字符對應,-1返回。

如果參數傳遞為pmb為空指針,如果多字節字符編碼為state-dependent,則函數返回非零值,否則返回零。

示例

/* wctomb example */
#include <stdio.h>      /* printf */
#include <stdlib.h>     /* wctomb, wchar_t(C) */

int main() {
  const wchar_t str[] = L"wctomb example";
  const wchar_t* pt;
  char buffer [MB_CUR_MAX];
  int i,length;

  pt = str;
  while (*pt) {
    length = wctomb(buffer,*pt);
    if (length<1) break;
    for (i=0;i<length;++i) printf ("[%c]",buffer[i]);
    ++pt;
  }

  return 0;
}


該示例使用選定的語言環境(在這種情況下,默認"C"語言環境)。

輸出:

[w][c][t][o][m][b][ ][e][x][a][m][p][l][e]



相關用法


注:本文由純淨天空篩選整理自C標準庫大神的英文原創作品 C wctomb function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。