strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Transformar una cadena basándose en información específica 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 que se va a colocar en strDest .

locale
Configuración regional que se va a usar.

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

El strxfrm función transforma la cadena señalada por strSource en un nuevo intercalado formulario que se almacena en strDest. No más de count caracteres, incluido el carácter null, se transforman y se coloca en la cadena resultante. La transformación se realiza mediante la configuración regional LC_COLLATE valor de la categoría. Para obtener más información sobre LC_COLLATE, consulte setlocale. strxfrmutiliza la configuración regional actual de su comportamiento dependiente de la configuración regional; _strxfrm_l es idéntico, salvo que usa la configuración regional pasada en lugar de la configuración regional actual. Para obtener más información, vea Locale.

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

wcsxfrmes una versión con caracteres anchos de strxfrm; los argumentos de cadena de wcsxfrm son punteros de caracteres anchos. Para wcsxfrm, después la transformación de cadena, una llamada a wcscmp con las dos cadenas transformadas produce resultados idénticos a los de una llamada a wcscoll aplica a las dos cadenas originales. Por lo demás, wcsxfrm y strxfrm se comportan de forma idéntica. wcsxfrmutiliza la configuración regional actual de su comportamiento dependiente de la configuración regional; _wcsxfrm_l usa la configuración regional pasada en lugar de la configuración regional actual.

Estas funciones validan sus parámetros. Si strSource es un puntero nulo, o strDest es un puntero NULL (a menos que el número es cero), o si count es mayor que INT_MAX, se invoca el controlador de parámetros no válidos, como se describe en validación del parámetro . Si la ejecución puede continuar, estas funciones establecen errno en EINVAL y devuelven INT_MAX.

Asignaciones de rutina de texto genérico

Rutina TCHAR.H_UNICODE y _MBCS no definidos_MBCS definido_UNICODE definido
_tcsxfrmstrxfrmstrxfrmwcsxfrm
_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 el mismo que el orden lexicográfico de los caracteres. Sin embargo, en otras configuraciones regionales, el orden de los caracteres del juego de caracteres puede diferir del orden de los caracteres lexicográficos. Por ejemplo, en algunas configuraciones regionales europeas el carácter 'a' (valor 0 x 61) precede el carácter ' aspecto#x00E4;' (valor 0xE4) en el juego de caracteres, pero el carácter 'ä' precede el carácter 'a' lexicográficamente.

En las configuraciones regionales que el juego de caracteres y el orden de los caracteres lexicográfico difieran, utilice strxfrm en las cadenas originales y, a continuación, strcmp en las cadenas resultantes para generar una comparación de cadenas lexicográfica según la configuración regional actual LC_COLLATE valor de la categoría. Por lo tanto, para comparar dos cadenas de manera lexicográfica en la configuración regional anterior, utilice strxfrm en las cadenas originales, a continuación, strcmp en las cadenas resultantes. Como alternativa, puede usar strcoll en lugar de strcmp en las cadenas originales.

strxfrmes básicamente un contenedor alrededor de LCMapString con LCMAP_SORTKEY.

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

1 + strxfrm( NULL, string, 0 )  

En, la configuración regional de "C" strxfrm es equivalente a la siguiente:

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

RutinaEncabezado 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.

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

Conversión de datos
localeconv
setlocale, _wsetlocale
Configuración regional
Manipulación de cadenas
strcoll (función)
strcmp, wcscmp, _mbscmp
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

Mostrar: