02/09/2018, 22:08

Hàm wcstombs() trong C

Hàm size_t wcstombs(char *str, const wchar_t *pwcs, size_t n) chuyển đổi chuỗi wide-char được xác định bởi pwcs thành một multibyte string bắt đầu tại str. Hầu như toàn bộ n byte được ghi tới str.. Khai báo hàm wcstombs() trong C Dưới đây là phần khai báo ...

Hàm size_t wcstombs(char *str, const wchar_t *pwcs, size_t n) chuyển đổi chuỗi wide-char được xác định bởi pwcs thành một multibyte string bắt đầu tại str. Hầu như toàn bộ n byte được ghi tới str..

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

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

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

Tham số

str: đây là con trỏ trỏ tới một mảng các phần tử char có độ dài ít nhất là n byte.

pwcs: là một chuỗi wide-character cần được chuyển đổi.

n: số byte tối đa để được ghi tới str.

Trả về giá trị

Hàm này trả về số byte (không phải là ký tự) đã được chuyển đổi và được ghi tới str, ngoại trừ ký tự null kết thúc. Nếu gặp một multibyte char, hàm này trả về -1.

Ví dụ

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

#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"https://QTM.com/thu-vien-c/index.jsp";

   /* chuyen doi thanh chuoi wide-character */
   ret = wcstombs(MB, WC, BUFFER_SIZE);
   
   printf("Cac ky tu duoc chuyen doi = %u
", ret);
   printf("Multibyte char = %s

", MB);
   
   return(0);
}

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

Theo Tutorialspoint

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

Bài tiếp: Hàm wctomb() trong C

0