Hàm mbstowcs () trong C ++ chuyển đổi một chuỗi ký tự nhiều byte thành chuỗi ký tự rộng tương đương.
Hàm mbstowcs () được định nghĩa trong tệp tiêu đề.
nguyên mẫu mbstowcs ()
size_t mbstowcs (wchar_t * dest, const char * src, size_t max);
Hàm mbstowcs () nhận ba đối số và trả về một giá trị nguyên.
Hàm này chuyển đổi chuỗi ký tự multibyte có phần tử đầu tiên được trỏ bởi src thành biểu diễn ký tự rộng (giá trị kiểu wchar_t) của nó.
Kết quả được lưu trữ tại vị trí bộ nhớ được trỏ tới bởi đích. Tham số max đại diện cho số ký tự multibyte tối đa được chuyển đổi.
Cơ chế chuyển đổi giống như cơ chế của mbtowc (), ngoại trừ trạng thái chuyển đổi mbtowc không bị ảnh hưởng. Việc chuyển đổi sẽ dừng nếu:
- Gặp phải một ký tự null, sau đó được chuyển đổi và lưu trữ.
- Gặp phải ký tự multibyte không hợp lệ.
- số ký tự multibyte tối đa đã được chuyển đổi.
mbstowcs () Tham số
- dest: Con trỏ đến mảng ký tự rộng kết quả.
- src: Con trỏ đến phần tử đầu tiên của ký tự multibyte được chuyển đổi thành ký tự rộng.
- max: Số ký tự multibyte tối đa được chuyển đổi.
mbstowcs () Giá trị trả về
- Nếu chuyển đổi thành công, mbstowcs () trả về số lượng ký tự rộng không bao gồm ký tự kết thúc (tức là ' 0') được ghi vào mảng đích.
- Nếu bất kỳ lỗi nào xảy ra trong quá trình chuyển đổi, nó sẽ trả về -1.
Ví dụ: Hàm mbstowcs () hoạt động như thế nào?
#include #include using namespace std; int main() ( char src() = "xc4xe3xbaxc3"; wchar_t dest(10); int num; num = mbstowcs(dest, src, MB_CUR_MAX); cout << "Number of wide character converted = " << num << endl; wcout << "Wide Character String = " << dest << endl; return 0; )
Khi bạn chạy chương trình, đầu ra có thể sẽ là:
Số ký tự rộng được chuyển đổi = 1 Chuỗi ký tự rộng = ─