01/09/2018, 22:49

Hàm wctomb() trong C

Hàm int wctomb(char *str, wchar) chuyển đổi wide char thành biểu diễn multi-byte char của nó và lưu trữ nó tại phần đầu mảng ký tự được trỏ tới bởi str . Khai báo hàm wctomb() trong C Dưới đây là phần khai báo cho wctomb() trong C: int wctomb ( ...

Hàm int wctomb(char *str, wchar) chuyển đổi wide char thành biểu diễn multi-byte char của nó và lưu trữ nó tại phần đầu mảng ký tự được trỏ tới bởi str.

Khai báo hàm wctomb() trong C

Dưới đây là phần khai báo cho wctomb() trong C:

int wctomb(char *str, wchar)

Tham số

str: là con trỏ trỏ tới một mảng đủ rộng để lưu giữ các multibyte char

wchar: là wide character của kiểu wchar_t.

Trả về giá trị

Nếu str không NULL, hàm wctomb() trả về số byte mà đã được ghi tới mảng byte tại str. Nếu không thể biểu diễn wchar dưới dạng multibyte sequence, hàm này trả về giá trị -1.

Nếu str là NULL, hàm wctomb() trả về giá trị khác 0 nếu mã hóa là có trạng thái, hoặc giá trị 0 nếu mã hóa là không có trạng thái.

Ví dụ

Chương trình C sau minh họa cách sử dụng của wctomb() trong C:

#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("Chuyen doi wide char:
");
   i = wctomb( pmb, wc );
   printf("Cac ky tu duoc chuyen doi: %u
", i);
   printf("Multibyte char: %.1s
", pmb);

   printf("Co gang thuc hien thao tac chuyen doi khi dich la NULL:
");
   i = wctomb( pmbnull, wc );
   printf("Cac ky tu duoc chuyen doi: %u
", i);
   /* lenh sau se khong in bat ky gia tri nao */
   printf("Multibyte char: %.1s
", pmbnull);
   
   return(0);
}

Biên dịch và chạy chương trình C trên sẽ cho kết quả:

Biên dịch và chạy chương trình C để xem kết quả

Theo Tutorialspoint

Bài trước: Hàm mbtowc() trong C

Bài tiếp: string.h trong C

0