C ++ strxfrm () - biblioteka standardowa C ++

Funkcja strxfrm () w C ++ przekształca dany ciąg bajtów zakończony wartością pustą w postać zdefiniowaną w implementacji.

Funkcja strxfrm () przekształca łańcuch w taki sposób, że porównanie dwóch przekształconych łańcuchów za pomocą funkcji strcmp () daje identyczny wynik, jak porównanie oryginalnych łańcuchów za pomocą funkcji strcoll () w bieżących ustawieniach regionalnych języka C.

Na przykład x i y to dwa ciągi. a i b to dwa łańcuchy utworzone przez przekształcenie odpowiednio x i y przy użyciu funkcji strxfrm. Następnie wywołanie strcmp (a, b) jest tym samym, co wywołanie strcoll (x, y).

strxfrm () prototyp

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

Funkcja strxfrm () konwertuje pierwsze zliczane znaki ciągu wskazywanego przez src na postać zdefiniowaną w implementacji, a wynik jest przechowywany w lokalizacji pamięci wskazywanej przez dest.

Zachowanie tej funkcji jest nieokreślone, jeśli:

  • rozmiar dest jest mniejszy niż wymagany rozmiar.
  • dest i src nakładają się.

Jest zdefiniowany w pliku nagłówkowym "> plik nagłówkowy.

strxfrm () Parametry

  • dest: wskaźnik do tablicy, w której przechowywany jest przekształcony ciąg.
  • src: wskaźnik do łańcucha zakończonego znakiem null, który ma zostać przekształcony.
  • count: maksymalna liczba znaków do konwersji.

strxfrm () Zwracana wartość

Funkcja strxfrm () zwraca liczbę przekształconych znaków, z wyłączeniem kończącego znaku null „ 0”.

Przykład: Jak działa funkcja strxfrm ()?

 #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; )

Po uruchomieniu programu wynik będzie następujący:

 strcoll zwrócił -1 Przed transformacją strcmp zwrócił 1 Po transformacji strcmp zwrócił -1

Interesujące artykuły...