Latest web development tutorials

C 庫函數– wctomb()

C 標準庫 - <stdlib.h> C標準庫- <stdlib.h>

描述

C庫函數int wctomb(char *str, wchar_t wchar)把寬字符wchar轉換為它的多字節表示形式,並把它存儲在str指向的字符數組的開頭。

聲明

下面是wctomb() 函數的聲明。

int wctomb(char *str, wchar_t wchar)

參數

  • str --一個指針,指向一個足以存儲多字節字符的數組。
  • wchar --類型為wchar_t的寬字符。

返回值

  • 如果str 不為NULL,wctomb() 函數返回寫入字節數組中的字節數。 如果wchar 不能被表示為一個多字節序列,則會返回-1。
  • 如果str 為NULL,如果編碼具有移位狀態,則wctomb() 函數返回非零,如果編碼是無狀態的,則返回零。

實例

下面的實例演示了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>