Share via


strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l

Transforma una cadena basada en la información de la configuración regional.

size_t strxfrm(
   char *strDest,
   const char *strSource,
   size_t count 
);
size_t wcsxfrm(
   wchar_t *strDest,
   const wchar_t *strSource,
   size_t count 
);
size_t _strxfrm_l(
   char *strDest,
   const char *strSource,
   size_t count,
   _locale_t locale
);
size_t wcsxfrm_l(
   wchar_t *strDest,
   const wchar_t *strSource,
   size_t count,
   _locale_t locale
);

Parámetros

  • strDest
    Cadena de destino.

  • strSource
    Cadena de origen.

  • count
    Número máximo de caracteres al lugar de strDest*.*

  • locale
    la configuración regional a utilizar.

Valor devuelto

Devuelve la longitud de la cadena transformada, sin contar el carácter null de terminación.Si el valor devuelto es mayor o igual que count, el contenido de strDest es imprevisible.en un error, cada función establece errno y devuelve INT_MAX.Para un carácter no válido, errno se establece en EILSEQ.

Comentarios

La función de strxfrm transforma la cadena indicada por a strSource en un nuevo formulario hace que se almacene en strDest.No más que los caracteres de count , incluido el carácter null, se transforman y se colocan en la cadena resultante.La transformación se crea utilizando el valor de categoría de LC_COLLATE de la configuración regional.Para obtener más información sobre LC_COLLATE, vea setlocale.strxfrm utiliza la configuración regional actual para su comportamiento configuración; dependientes _strxfrm_l es idéntico pero utiliza la configuración regional pasado en lugar de la configuración regional actual.Para obtener más información, vea Configuración regional.

Después de la transformación, una llamada a strcmp con las dos cadenas transformadas produce los resultados idénticos a los de una llamada a strcoll aplicada a las dos cadenas originales.Como con strcoll y stricoll, strxfrm controla automáticamente las cadenas de caracteres multibyte según corresponda.

wcsxfrm es una versión con caracteres anchos de strxfrm; los argumentos de cadena de wcsxfrm son punteros de carácter ancho.Para wcsxfrm, después de la transformación de la cadena, una llamada a wcscmp con las dos cadenas transformadas produce los resultados idénticos a los de una llamada a wcscoll aplicada a las dos cadenas originales.wcsxfrm y strxfrm se comportan exactamente igual de otra manera.wcsxfrm utiliza la configuración regional actual para su comportamiento configuración; dependientes _wcsxfrm_l utiliza la configuración regional pasado en lugar de la configuración regional actual.

estas funciones validan sus parámetros.Si strSource es un puntero NULL, o strDest es un puntero nulo (a menos que el recuento es cero), o si count es mayor que INT_MAX, se invoca el controlador no válido de parámetro, tal y como se describe en Validación de parámetros .Si la ejecución puede continuar, este errno establecido funciones a EINVAL y a INT_MAXreturn.

Asignaciones de la rutina de texto genérico

rutina de TCHAR.H

_UNICODE y _MBCS no definido

_MBCS definido

_UNICODE definido

_tcsxfrm

strxfrm

strxfrm

wcsxfrm

_tcsxfrm_l

_strxfrm_l

_strxfrm_l

_wcsxfrm_l

En la configuración regional “c”, el orden de los caracteres del juego de caracteres (juego de caracteres ASCII) es igual que el orden lexicográfico de caracteres.Sin embargo, en configuraciones regionales, el orden de los caracteres del juego de caracteres puede diferir del orden lexicográfico de caracteres.Por ejemplo, en algunas configuraciones regionales europeas, el carácter “a” (valor 0x61) precede el carácter “ä” (valor 0xE4) en el juego de caracteres, pero el carácter “ä” precede el carácter “a” lexicográficamente.

En configuraciones regionales para las que el juego de caracteres y el orden lexicográfico de caracteres difieren, utilice strxfrm en cadenas originales y después strcmp en las cadenas resultantes de generar una comparación lexicográfica de cadenas según el valor actual de la categoría de LC_COLLATE de la configuración regional.Por tanto, comparar dos cadenas lexicográficamente en la configuración regional anterior, utilice strxfrm en cadenas originales, entonces strcmp en las cadenas resultantes.Como alternativa, puede utilizar strcoll en lugar de strcmp en cadenas originales.

strxfrm es básicamente un contenedor de LCMapString con LCMAP_SORTKEY.

El valor de la expresión siguiente es el tamaño de la matriz necesario para contener la transformación de strxfrm de la cadena de origen:

1 + strxfrm( NULL, string, 0 )

En la configuración regional “c” se utiliza solo, strxfrm es equivalente a la siguiente:

strncpy( _string1, _string2, _count );
return( strlen( _string1 ) );

Requisitos

rutina

Encabezado necesario

strxfrm

<string.h>

wcsxfrm

<string.h> o <wchar.h>

_strxfrm_l

<string.h>

_wcsxfrm_l

<string.h> o <wchar.h>

Para obtener información adicional de compatibilidad, vea compatibilidad en la Introducción.

Equivalente en .NET Framework

No es aplicable Para llamar a la función estándar de C, utilice PInvoke. Para obtener más información, vea La invocación de plataforma ejemplos.

Vea también

Referencia

Conversión de datos

localeconv

setlocale, _wsetlocale

Configuración regional

Manipulación de cadenas (CRT)

funciones de strcoll

strcmp, wcscmp, _mbscmp

strncmp, wcsncmp, _mbsncmp, _mbsncmp_l