C ++ strxfrm () - Biblioteca estándar de C ++

La función strxfrm () en C ++ transforma una cadena de bytes terminada en nulo en una forma definida por la implementación.

La función strxfrm () transforma la cadena de modo que comparar dos cadenas transformadas usando la función strcmp () produce un resultado idéntico al comparar las cadenas originales usando la función strcoll () en la configuración regional actual de C.

Por ejemplo, xey son dos cadenas. ayb son dos cadenas formadas transformando xey respectivamente usando la función strxfrm. Entonces, una llamada a strcmp (a, b) es lo mismo que una llamada a strcoll (x, y).

prototipo strxfrm ()

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

La función strxfrm () convierte los primeros caracteres de recuento de la cadena a la que apunta src a una forma definida por la implementación y el resultado se almacena en la ubicación de memoria apuntada por dest.

El comportamiento de esta función no está definido si:

  • el tamaño de dest es menor que el tamaño requerido.
  • dest y src se superponen.

Se define en el archivo de encabezado "> archivo de encabezado.

strxfrm () Parámetros

  • dest: puntero a la matriz donde se almacena la cadena transformada.
  • src: puntero a la cadena terminada en nulo a transformar.
  • recuento: número máximo de caracteres para convertir.

strxfrm () Valor de retorno

La función strxfrm () devuelve el número de caracteres transformados, excluyendo el carácter nulo de terminación ' 0'.

Ejemplo: ¿Cómo funciona la función 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; )

Cuando ejecute el programa, la salida será:

 strcoll devolvió -1 Antes de la transformación, strcmp devolvió 1 Después de la transformación, strcmp devolvió -1

Articulos interesantes...