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

Hàm strxfrm () trong C ++ biến đổi một chuỗi byte kết thúc rỗng đã cho thành một dạng được định nghĩa thực thi.

Sau đó, hàm strxfrm () biến đổi chuỗi sao cho so sánh hai chuỗi đã biến đổi bằng cách sử dụng hàm strcmp () tạo ra kết quả giống hệt như so sánh các chuỗi ban đầu bằng cách sử dụng hàm strcoll () trong ngôn ngữ C hiện tại.

Ví dụ, x và y là hai chuỗi. a và b là hai chuỗi đượ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 strxfrm. Sau đó, một cuộc gọi đến strcmp (a, b) cũng giống như gọi strcoll (x, y).

nguyên mẫu strxfrm ()

 size_t strxfrm (char * dest, const char * src, size_t count);

Hàm strxfrm () chuyển đổi các ký tự đếm đầu tiên của chuỗi được trỏ tới bởi src thành một dạng được xác định thực thi 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.

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

Tham số strxfrm ()

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

strxfrm () Giá trị trả về

Hàm strxfrm () trả về số ký tự được biến đổi, không bao gồm ký tự rỗng kết thúc ' 0'.

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

 #include #include #include using namespace std; int main() ( setlocale(LC_COLLATE, "cs_CZ.UTF-8"); const char* s1 = "hrnec"; const char* s2 = "chrt"; char t1(20), t2(20); cout << "strcoll returned " << strcoll(s1,s2) << endl; cout << "Before transformation, " << "strcmp returned " << strcmp(s1,s2) << endl; strxfrm(t1,s1,10); strxfrm(t2,s2,10); cout << "After transformation, " << "strcmp returned " << strcmp(t1,t2) << endl; return 0; )

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

 strcoll trả về -1 Trước khi chuyển đổi, strcmp trả về 1 Sau khi biến đổi, strcmp trả về -1

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