Condividi tramite


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.

Vedere anche

Riferimenti

Conversione di dati

localeconv

setlocale, _wsetlocale

Impostazioni locali

Modifica delle stringhe (CRT)

funzioni di strcoll

strcmp, wcscmp, _mbscmp

strncmp, wcsncmp, _mbsncmp, _mbsncmp_l