Trong phần này, chúng ta sẽ xem ký tự rộng trong C ++ là gì. Chúng ta cũng sẽ thấy một số hàm được sử dụng để xử lý các ký tự rộng.
Các ký tự rộng tương tự như kiểu dữ liệu ký tự. Sự khác biệt chính là ký tự đó chiếm không gian 1 byte, nhưng ký tự rộng chiếm 2 byte (đôi khi 4 byte tùy thuộc vào trình biên dịch) không gian trong bộ nhớ. Đối với không gian rộng 2 byte ký tự có thể chứa 64K (65536) ký tự khác nhau. Vì vậy, các char rộng có thể chứa UNICODEcharacters. Các giá trị UNICODE là tiêu chuẩn quốc tế cho phép mã hóa các ký tự hầu như cho bất kỳ ký tự nào của bất kỳ ngôn ngữ nào.
Ví dụ
#include<iostream> using namespace std; int main() { wchar_t wide_character = L'a'; cout << "The wide character is: " << wide_character << endl; cout << "Wide character size: " <<sizeof(wide_character); }
Đầu ra
The wide character is: 97 Wide character size: 2
Chúng ta có thể thấy rằng để tạo ký tự rộng, chúng ta phải thêm ‘L’ vào trước ký tự. Nhưng giá trị ký tự không được hiển thị trong đầu ra bằng cách sử dụng cout. Vì vậy, để sử dụng toàn bộ char, chúng ta phải sử dụng wcout và để lấy dữ liệu đầu vào, chúng ta phải sử dụng wcin.
Chúng tôi có thể tạo một số mảng ký tự rộng và in chúng dưới dạng chuỗi.
Ví dụ
#include<iostream> using namespace std; int main() { char str1[] = "This is character array"; cout << str1 << endl; wchar_t str2 [] = L"This is wide character array"; wcout << str2; }
Đầu ra
This is character array This is wide character array
Bây giờ chúng ta hãy xem một số hàm được sử dụng cho các ký tự rộng.
Hàm | Mô tả |
---|---|
wcslen () | Cú pháp là size_t wcslen (const wchar_t * wcs); Hàm này được sử dụng để lấy độ dài của chuỗi ký tự rộng. |
wcscat () | Cú pháp là:wchar_t * wcscat (wchar_t * strDest, const wchar_t * strSrc); Hàm này được sử dụng để nối chuỗi nguồn với chuỗi đích. |
wcscpy () | Cú pháp là wchar_t * wcscpy (wchar_t * strDest, const wchar_t * strSrc); Thật hữu ích để sao chép chuỗi nguồn sang chuỗi đích. |
wcsncpy () | Cú pháp là wchar_t * wcsncpy (wchar_t * dest, const wchar_t * src, size_tn); Hàm này được sử dụng để sao chép n ký tự đầu tiên của nguồn đến đích. Khi nguồn hệ điều hành cuối nhỏ hơn n, thì tại đích sẽ có một số ký tự rỗng. |
wcscmp () | Cú pháp là int wcscmp (const wchar_t * wcs1, const wchar_t * wcs2); Hàm này được sử dụng để so sánh hai chuỗi ký tự rộng wcs1 và wcs2. Đây là hàm likestrcmp () để so sánh chuỗi bình thường. |
wcsstr () | Cú pháp là const wchar_t * wcsstr (const wchar_t * wcs1, const wchar_t * wcs2); Hàm này được sử dụng để tìm lần xuất hiện đầu tiên của wcs2 trong wcs1. Nếu nó không có, thì nó trả về null |
wcstok () | Cú pháp là wchar_t * wcstok (wchar_t * str, const wchar_t * delim, wchar_t ** ptr); Hàm này giống như hàm strtok (). Nó giúp mã hóa chuỗi được tạo bằng cách sử dụng các ký tự rộng. Cần có dấu phân tách để mã hóa chuỗi. |