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

La función wcsxfrm () en C ++ transforma una cadena ancha terminada en nulo dada en una forma definida por la implementación.

La función wcsxfrm () transforma una cadena ancha de tal manera que comparar dos cadenas anchas transformadas usando la función wcscmp () produce un resultado idéntico al comparar las cadenas anchas originales usando la función wcscoll () en la configuración regional actual de C.

Por ejemplo, xey son dos cadenas anchas. ayb son dos cadenas anchas formadas al transformar xey respectivamente usando la función wcsxfrm.

Entonces,

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

Está definido en el archivo de encabezado.

prototipo wcsxfrm ()

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

La función wcsxfrm () convierte el primer recuento de caracteres anchos de la cadena ancha apuntada por 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.

Parámetros de wcsxfrm ()

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

wcsxfrm () Valor de retorno

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

Ejemplo: ¿Cómo funciona la función wcsxfrm ()?

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

Cuando ejecute el programa, la salida será:

 wcscoll devolvió -1 Antes de la transformación, wcscmp devolvió 1 Después de la transformación, wcscmp devolvió -1

Articulos interesantes...