C 庫(kù)函數(shù) - wcstombs()

C 標(biāo)準(zhǔn)庫(kù) - <stdlib.h> C 標(biāo)準(zhǔn)庫(kù) - <stdlib.h>

描述

C 庫(kù)函數(shù) size_t wcstombs(char *str, const wchar_t *pwcs, size_t n) 把寬字符字符串 pwcs 轉(zhuǎn)換為一個(gè) str 開始的多字節(jié)字符串。最多會(huì)有 n 個(gè)字節(jié)被寫入 str 中。

聲明

下面是 wcstombs() 函數(shù)的聲明。

size_t wcstombs(char *str, const wchar_t *pwcs, size_t n)

參數(shù)

  • str -- 指向一個(gè) char 元素的數(shù)組,至少有 n 字節(jié)長(zhǎng)。
  • pwcs -- 要被轉(zhuǎn)換的寬字符字符串。
  • n -- 要被寫入到 str 中的最大字節(jié)數(shù)。

返回值

該函數(shù)返回轉(zhuǎn)換和寫入到 str 中的字節(jié)數(shù),不包括結(jié)尾的空字符。如果遇到一個(gè)無(wú)效的多字節(jié)字符,則返回 -1 值。

實(shí)例

下面的實(shí)例演示了 wcstombs() 函數(shù)的用法。

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

#define BUFFER_SIZE 50

int main()
{
   size_t ret;
   char *MB = (char *)malloc( BUFFER_SIZE );
   wchar_t *WC = L"http://www.o2fo.com";

   /* 轉(zhuǎn)換寬字符字符串 */
   ret = wcstombs(MB, WC, BUFFER_SIZE);
   
   printf("要轉(zhuǎn)換的字符數(shù) = %u\n", ret);
   printf("多字節(jié)字符 = %s\n\n", MB);
   
   return(0);
}

讓我們編譯并運(yùn)行上面的程序,這將產(chǎn)生以下結(jié)果:

要轉(zhuǎn)換的字符數(shù) = 23
多字節(jié)字符 = http://www.o2fo.com

C 標(biāo)準(zhǔn)庫(kù) - <stdlib.h> C 標(biāo)準(zhǔn)庫(kù) - <stdlib.h>