C ++ wcsxfrm () - Libreria standard C ++

La funzione wcsxfrm () in C ++ trasforma una data stringa estesa con terminazione nulla in una forma definita dall'implementazione.

La funzione wcsxfrm () trasforma una stringa ampia in modo tale che il confronto di due stringhe larghe trasformate utilizzando la funzione wcscmp () produce il risultato identico rispetto al confronto delle stringhe larghe originali utilizzando la funzione wcscoll () nella locale C corrente.

Ad esempio, x e y sono due stringhe larghe. aeb sono due stringhe larghe formate trasformando xey rispettivamente utilizzando la funzione wcsxfrm.

Poi,

 wcscmp (a, b) = wcscoll (x, y)

È definito nel file di intestazione.

prototipo di wcsxfrm ()

 size_t wcsxfrm (wchar_t * dest, const wchar_t * src, size_t count);

La funzione wcsxfrm () converte i primi caratteri count wide della stringa wide puntata da src in una forma definita dall'implementazione e il risultato viene memorizzato nella posizione di memoria puntata da dest.

Il comportamento di questa funzione non è definito se:

  • la dimensione di dest è inferiore alla dimensione richiesta.
  • dest e src si sovrappongono.

Parametri wcsxfrm ()

  • dest: puntatore all'array in cui è memorizzata la stringa ampia trasformata.
  • src: puntatore alla stringa ampia terminata da null da trasformare.
  • count: numero massimo di caratteri larghi da convertire.

wcsxfrm () Restituisce il valore

La funzione wcsxfrm () restituisce il numero di caratteri larghi trasformati, escluso il carattere largo nullo finale L ' 0'.

Esempio: come funziona la funzione wcsxfrm ()?

 #include #include #include using namespace std; int main() ( setlocale(LC_COLLATE, "cs_CZ.UTF-8"); const wchar_t* s1 = L"u0068u0072u006eu0065u0063"; const wchar_t* s2 = L"u0063u0068u0072u0074"; wchar_t t1(20), t2(20); cout << "wcscoll returned " << wcscoll(s1,s2) << endl; cout << "Before transformation, " << "wcscmp returned " << wcscmp(s1,s2) << endl; wcsxfrm(t1,s1,10); wcsxfrm(t2,s2,10); cout << "After transformation, " << "wcscmp returned " << wcscmp(t1,t2) << endl; return 0; )

Quando esegui il programma, l'output sarà:

 wcscoll ha restituito -1 Prima della trasformazione, wcscmp ha restituito 1 Dopo la trasformazione, wcscmp ha restituito -1

Articoli interessanti...