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

strDest
Stringa di destinazione.Destination string.

strSource
Stringa di origine.Source string.

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

locale
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 count, il contenuto di strDest è imprevedibile.If the return value is greater than or equal to count, the content of strDest is unpredictable. Su un 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 è impostato su EILSEQ.For an invalid character, errno is set to EILSEQ.

NoteRemarks

La funzione strxfrm trasforma la stringa puntata da 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 count caratteri, incluso il carattere null, vengono trasformati e inseriti nella stringa risultante.No more than count characters, including the null character, are transformed and placed into the resulting string. La trasformazione viene eseguita utilizzando l'impostazione di categoria LC_COLLATE delle impostazioni locali.The transformation is made using the locale's LC_COLLATE category setting. Per altre informazioni su 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 è identico con la differenza che utilizza 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 le 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 di strxfrm; gli argomenti stringa di 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 applicata alle 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. In caso contrario, wcsxfrm e strxfrm si comportano in modo identico.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 puntatore NULL (a meno che il numero non sia zero) o se count è 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 su EINVAL e restituiscono 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 strxfrm strxfrm wcsxfrm
_tcsxfrm_l _strxfrm_l _strxfrm_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.

Nelle impostazioni locali per le quali l'ordine del set di caratteri e l'ordine lessicografico dei caratteri differiscono, utilizzare strxfrm sulle stringhe originali e quindi strcmp sulle stringhe risultanti per produrre un confronto di stringhe lessicografico secondo l'impostazione di categoria corrente di LC_COLLATE delle impostazioni locali.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. Pertanto, 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 per 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 la trasformazione strxfrm 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 )  

Nelle impostazioni locali "C", solo strxfrm equivale a quanto indicato di seguito:In the "C" locale only, strxfrm is equivalent to the following:

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

RequisitiRequirements

RoutineRoutine Intestazione obbligatoriaRequired header
strxfrm <string.h><string.h>
wcsxfrm <string.h> o <wchar.h><string.h> or <wchar.h>
_strxfrm_l <string.h><string.h>
_wcsxfrm_l <string.h> o <wchar.h><string.h> or <wchar.h>

Per altre informazioni sulla compatibilità, vedere la sezione Compatibilità nell'introduzione.For additional compatibility information, see Compatibility in the Introduction.

Vedere ancheSee Also

Conversione dei dati Data Conversion
localeconv localeconv
setlocale, _wsetlocale setlocale, _wsetlocale
Locale (Impostazioni locali)Locale
Modifica di stringhe String Manipulation
Funzioni strcoll strcoll Functions
strcmp, wcscmp, _mbscmp strcmp, wcscmp, _mbscmp
strncmp, wcsncmp, _mbsncmp, _mbsncmp_lstrncmp, wcsncmp, _mbsncmp, _mbsncmp_l