C ++ wcsxfrm () - Thư viện chuẩn C ++

Hàm wcsxfrm () trong C ++ biến đổi một chuỗi rộng có kết thúc bằng rỗng đã cho thành một dạng được định nghĩa triển khai.

Hàm wcsxfrm () biến đổi một chuỗi rộng sao cho việc so sánh hai chuỗi rộng được biến đổi bằng cách sử dụng hàm wcscmp () tạo ra kết quả giống hệt như so sánh các chuỗi rộng ban đầu bằng cách sử dụng hàm wcscoll () trong ngôn ngữ C hiện tại.

Ví dụ, x và y là hai chuỗi rộng. a và b là hai chuỗi rộng được hình thành bằng cách biến đổi x và y tương ứng bằng cách sử dụng hàm wcsxfrm.

Sau đó,

 wcscmp (a, b) = wcscoll (x, y)

Nó được định nghĩa trong tệp tiêu đề.

nguyên mẫu wcsxfrm ()

 size_t wcsxfrm (wchar_t * dest, const wchar_t * src, size_t count);

Hàm wcsxfrm () chuyển đổi các ký tự rộng đếm đầu tiên của chuỗi rộng được trỏ đến bởi src thành một dạng xác định việc triển khai và kết quả được lưu trữ trong vị trí bộ nhớ được trỏ tới bởi hàm.

Hoạt động của hàm này là không xác định nếu:

  • kích thước của đích nhỏ hơn kích thước yêu cầu.
  • chồng chéo đích và src.

wcsxfrm () Tham số

  • dest: con trỏ tới mảng nơi lưu trữ chuỗi rộng đã biến đổi.
  • src: con trỏ đến chuỗi rộng kết thúc null sẽ được chuyển đổi.
  • count: số ký tự rộng tối đa để chuyển đổi.

wcsxfrm () Giá trị trả về

Hàm wcsxfrm () trả về số lượng ký tự rộng được biến đổi, ngoại trừ ký tự rộng rỗng kết thúc L ' 0'.

Ví dụ: Hàm wcsxfrm () hoạt động như thế nào?

 #include #include #include using namespace std; int main() ( setlocale(LC_COLLATE, "cs_CZ.UTF-8"); const wchar_t* s1 = L"u0068u0072u006eu0065u0063"; const wchar_t* s2 = L"u0063u0068u0072u0074"; wchar_t t1(20), t2(20); cout << "wcscoll returned " << wcscoll(s1,s2) << endl; cout << "Before transformation, " << "wcscmp returned " << wcscmp(s1,s2) << endl; wcsxfrm(t1,s1,10); wcsxfrm(t2,s2,10); cout << "After transformation, " << "wcscmp returned " << wcscmp(t1,t2) << endl; return 0; )

Khi bạn chạy chương trình, đầu ra sẽ là:

 wcscoll trả về -1 Trước khi chuyển đổi, wcscmp trả về 1 Sau khi chuyển đổi, wcscmp trả về -1

thú vị bài viết...