strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l
Convertire una stringa in base alle informazioni specifiche delle impostazioni locali.
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
);
Parametri
strDest
stringa di destinazione.strSource
stringa di origine.count
Numero massimo di caratteri da inserire in strDest*.*locale
le impostazioni locali da utilizzare.
Valore restituito
Restituisce la lunghezza della stringa passata in, non contante il carattere di terminazione null.Se il valore restituito è maggiore o uguale a count, il contenuto di strDest sarà imprevedibile.su un errore, set di ogni funzione errno e restituisce INT_MAX.per un carattere non valido, errno è impostato su EILSEQ.
Note
strxfrm la funzione trasforma la stringa indicata da strSource in un nuovo form rispetto archiviato in strDest.non più di count i caratteri, inclusi il carattere null, vengono trasformati e inseriti nella stringa di risultato.La conversione viene eseguita utilizzando le impostazioni locali LC_COLLATE impostazione della categoria.per ulteriori informazioni su LC_COLLATE, vedere setlocale.strxfrm utilizza le impostazioni locali correnti per il relativo comportamento impostazioni locali-dipendente; _strxfrm_l è identico con la differenza che utilizza le impostazioni locali passate in anziché le impostazioni locali correnti.Per ulteriori informazioni, vedere Impostazioni locali.
dopo la trasformazione, una chiamata a strcmp con due stringhe si trasforma produce risultati identici a quelli di una chiamata a strcoll applicato alle due stringhe originali.come con strcoll e stricoll, strxfrm gestisce automaticamente le stringhe di caratteri multibyte in base alle proprie esigenze.
wcsxfrm è una versione a caratteri estesi di strxfrm; gli argomenti della stringa di wcsxfrm sono puntatori a caratteri estesi.per wcsxfrm, dopo la trasformazione di stringa, una chiamata a wcscmp con i due conterrà trasformati di stringhe risultati identici a quelli di una chiamata a wcscoll applicato alle due stringhe originali.wcsxfrm e strxfrm comportano in modo identico in caso contrario.wcsxfrm utilizza le impostazioni locali correnti per il relativo comportamento impostazioni locali-dipendente; _wcsxfrm_l utilizza le impostazioni locali passate in anziché le impostazioni locali correnti.
Queste funzioni convalidano i relativi parametri.se strSource è un puntatore null, o strDest è un puntatore null (a meno che il conteggio da zero, o se count è maggiore di INT_MAX, il gestore non valido di parametro viene richiamato, come descritto in Convalida dei parametri .Se l'esecuzione è consentita per continuare, queste funzioni impostate errno in EINVAL e restituiscono INT_MAX.
Mapping di routine a testo generico
routine di TCHAR.H |
_UNICODE & _MBCS non definiti |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_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) corrisponde a l lessicografico di caratteri.Tuttavia, in altre impostazioni locali, l'ordine dei caratteri nel set di caratteri può differire dall'ordine dei caratteri lessicografico.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 il carattere “a„ lessicografico.
Nelle impostazioni locali per il quale il set di caratteri e l'ordine dei caratteri lessicografico differiscono, utilizzano strxfrm le stringhe originali e quindi strcmp le stringhe di risultato per produrre un confronto di stringhe lessicografico seconda delle impostazioni locali correnti LC_COLLATE impostazione della categoria.Pertanto, confrontare due stringhe lessicografico le impostazioni locali in precedenza, utilizzare strxfrm le stringhe originali, quindi strcmp le stringhe di risultato.In alternativa, è possibile utilizzare strcoll anziché strcmp le stringhe originali.
strxfrm è fondamentalmente un wrapper di LCMapString con LCMAP_SORTKEY.
Il valore dell'espressione corrisponde alla dimensione della matrice necessaria giudicare strxfrm trasformazione della stringa di origine:
1 + strxfrm( NULL, string, 0 )
Nelle impostazioni locali “c„ solo, strxfrm equivale al seguente:
strncpy( _string1, _string2, _count );
return( strlen( _string1 ) );
Requisiti
routine |
Intestazione di associazione |
---|---|
strxfrm |
<string.h> |
wcsxfrm |
<string.h> o <wchar.h> |
_strxfrm_l |
<string.h> |
_wcsxfrm_l |
<string.h> o <wchar.h> |
per informazioni di compatibilità aggiuntive, vedere compatibilità nell'introduzione.
Equivalente .NET Framework
Non applicabile. Per chiamare la funzione c standard, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di pinvoke.