strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_lstrxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l

Trasformare una stringa basata sulle informazioni specifiche delle impostazioni locali.Transform a string based on locale-specific information.

SintassiSyntax

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

ParametriParameters

strDeststrDest
Stringa di destinazione.Destination string.

strSourcestrSource
Stringa di origine.Source string.

countcount
Numero massimo di caratteri da inserire in strDest.Maximum number of characters to place in strDest.

localelocale
Impostazioni locali da usare.The locale to use.

Valore restituitoReturn Value

Restituisce la lunghezza della stringa trasformata, senza contare il carattere di terminazione null.Returns the length of the transformed string, not counting the terminating null character. Se il valore restituito è maggiore o uguale a conteggio, il contenuto degli strDest è imprevedibile.If the return value is greater than or equal to count, the content of strDest is unpredictable. In caso di errore, ogni funzione imposta errno e restituisce INT_MAX.On an error, each function sets errno and returns INT_MAX. Per un carattere non valido errno è impostata su EILSEQ.For an invalid character, errno is set to EILSEQ.

NoteRemarks

Il strxfrm funzione Trasforma la stringa a cui puntata strSource in un nuovo formato fascicolato che viene archiviato in strDest.The strxfrm function transforms the string pointed to by strSource into a new collated form that is stored in strDest. Non più di conteggio caratteri, incluso il carattere null, vengono trasformati e inseriti nella stringa risulta.No more than count characters, including the null character, are transformed and placed into the resulting string. La trasformazione viene eseguita usando le impostazioni locali LC_COLLATE impostazione della categoria.The transformation is made using the locale's LC_COLLATE category setting. Per ulteriori informazioni sul LC_COLLATE, vedere setlocale.For more information on LC_COLLATE, see setlocale. strxfrm utilizza le impostazioni locali correnti per il relativo comportamento dipendente dalle impostazioni locali; strxfrm_l è identica ad eccezione del fatto che usa le impostazioni locali passate anziché le impostazioni locali correnti.strxfrm uses the current locale for its locale-dependent behavior; _strxfrm_l is identical except that it uses the locale passed in instead of the current locale. Per altre informazioni, vedere Locale.For more information, see Locale.

Dopo la trasformazione, una chiamata a strcmp con le due stringhe trasformate restituisce risultati identici a quelli di una chiamata a strcoll applicata alle due stringhe originali.After the transformation, a call to strcmp with the two transformed strings yields results identical to those of a call to strcoll applied to the original two strings. Come con strcoll e stricoll, strxfrm gestisce automaticamente stringhe di caratteri multibyte in modo appropriato.As with strcoll and stricoll, strxfrm automatically handles multibyte-character strings as appropriate.

wcsxfrm è una versione a caratteri wide strxfrm; gli argomenti di stringa del wcsxfrm sono puntatori a caratteri "wide".wcsxfrm is a wide-character version of strxfrm; the string arguments of wcsxfrm are wide-character pointers. Per wcsxfrm, dopo la trasformazione di stringa, una chiamata a wcscmp con le due stringhe trasformate restituisce risultati identici a quelli di una chiamata a wcscoll applicato per il due stringhe originali.For wcsxfrm, after the string transformation, a call to wcscmp with the two transformed strings yields results identical to those of a call to wcscoll applied to the original two strings. wcsxfrm e strxfrm si comportano in modo identico in caso contrario.wcsxfrm and strxfrm behave identically otherwise. wcsxfrm utilizza le impostazioni locali correnti per il relativo comportamento dipendente dalle impostazioni locali; wcsxfrm_l utilizza le impostazioni locali passate anziché le impostazioni locali correnti.wcsxfrm uses the current locale for its locale-dependent behavior; _wcsxfrm_l uses the locale passed in instead of the current locale.

Queste funzioni convalidano i relativi parametri.These functions validate their parameters. Se strSource è un puntatore null, o strDest è un NULL puntatore (a meno che non conteggio è zero), oppure se conteggio è maggiore di INT_MAX, viene richiamato il gestore di parametri non validi, come descritto in convalida dei parametri .If strSource is a null pointer, or strDest is a NULL pointer (unless count is zero), or if count is greater than INT_MAX, the invalid parameter handler is invoked, as described in Parameter Validation . Se l'esecuzione può continuare, queste funzioni impostano errno alla EINVAL e restituire INT_MAX.If execution is allowed to continue, these functions set errno to EINVAL and return INT_MAX.

Mapping di routine di testo genericoGeneric-Text Routine Mappings

Routine TCHAR.HTCHAR.H routine _UNICODE e _MBCS non definiti_UNICODE & _MBCS not defined _MBCS definito_MBCS defined _UNICODE definito_UNICODE defined
tcsxfrm_tcsxfrm strxfrmstrxfrm strxfrmstrxfrm wcsxfrmwcsxfrm
_tcsxfrm_l_tcsxfrm_l _strxfrm_l_strxfrm_l _strxfrm_l_strxfrm_l _wcsxfrm_l_wcsxfrm_l

Nelle impostazioni locali "C", l'ordine dei caratteri nel set di caratteri (set di caratteri ASCII) è lo stesso dell'ordine lessicografico dei caratteri.In the "C" locale, the order of the characters in the character set (ASCII character set) is the same as the lexicographic order of the characters. Tuttavia, in altre impostazioni locali, l'ordine dei caratteri nel set di caratteri può differire dall'ordine lessicografico dei caratteri.However, in other locales, the order of characters in the character set may differ from the lexicographic character order. Ad esempio, in alcune impostazioni locali europee, il carattere 'a' (valore 0x61) precede il carattere 'ä' (valore 0xE4) nel set di caratteri, ma il carattere 'ä' precede lessicograficamente il carattere 'a'.For example, in certain European locales, the character 'a' (value 0x61) precedes the character 'ä' (value 0xE4) in the character set, but the character 'ä' precedes the character 'a' lexicographically.

In impostazioni locali per cui il set di caratteri e l'ordine lessicografico dei caratteri differiscono, utilizzare strxfrm sulle stringhe originali, quindi strcmp sulle stringhe risultanti per produrre una stringa lessicografico confronto in base alle impostazioni locali correnti LC_COLLATE impostazione della categoria.In locales for which the character set and the lexicographic character order differ, use strxfrm on the original strings and then strcmp on the resulting strings to produce a lexicographic string comparison according to the current locale's LC_COLLATE category setting. Di conseguenza, per confrontare lessicograficamente due stringhe nelle impostazioni locali precedenti, utilizzare strxfrm sulle stringhe originali, quindi strcmp sulle stringhe risultanti.Thus, to compare two strings lexicographically in the above locale, use strxfrm on the original strings, then strcmp on the resulting strings. In alternativa, è possibile utilizzare strcoll anziché strcmp sulle stringhe originali.Alternately, you can use strcoll rather than strcmp on the original strings.

strxfrm è fondamentalmente un wrapper intorno LCMapString con LCMAP_SORTKEY.strxfrm is basically a wrapper around LCMapString with LCMAP_SORTKEY.

Il valore della seguente espressione corrisponde alla dimensione della matrice necessaria per contenere il strxfrm trasformazione della stringa di origine:The value of the following expression is the size of the array needed to hold the strxfrm transformation of the source string:

1 + strxfrm( NULL, string, 0 )

Le impostazioni locali "C", solo strxfrm equivale alla seguente:In the "C" locale only, strxfrm is equivalent to the following:

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

RequisitiRequirements

RoutineRoutine Intestazione obbligatoriaRequired header
strxfrmstrxfrm <string.h><string.h>
wcsxfrmwcsxfrm <string.h> o <wchar.h><string.h> or <wchar.h>
_strxfrm_l_strxfrm_l <string.h><string.h>
_wcsxfrm_l_wcsxfrm_l <string.h> o <wchar.h><string.h> or <wchar.h>

Per altre informazioni sulla compatibilità, vedere Compatibilità.For additional compatibility information, see Compatibility.

Vedere ancheSee also

Conversione dei datiData Conversion
localeconvlocaleconv
setlocale, _wsetlocalesetlocale, _wsetlocale
Impostazioni localiLocale
Modifica di stringheString Manipulation
Funzioni strcollstrcoll Functions
strcmp, wcscmp, _mbscmpstrcmp, wcscmp, _mbscmp
strncmp, wcsncmp, _mbsncmp, _mbsncmp_lstrncmp, wcsncmp, _mbsncmp, _mbsncmp_l