C ++ strxfrm () - Libreria standard C ++

La funzione strxfrm () in C ++ trasforma una data stringa di byte terminata con null in una forma definita dall'implementazione.

La funzione strxfrm () trasforma la stringa in modo tale che il confronto di due stringhe trasformate utilizzando la funzione strcmp () produce il risultato identico rispetto al confronto delle stringhe originali utilizzando la funzione strcoll () nella lingua C corrente.

Ad esempio, x e y sono due stringhe. aeb sono due stringhe formate trasformando xey rispettivamente utilizzando la funzione strxfrm. Quindi una chiamata a strcmp (a, b) equivale a chiamare strcoll (x, y).

prototipo strxfrm ()

 size_t strxfrm (char * dest, const char * src, size_t count);

La funzione strxfrm () converte i primi caratteri di conteggio della stringa 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.

È definito nel file di intestazione "> file di intestazione.

Parametri strxfrm ()

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

strxfrm () Restituisce il valore

La funzione strxfrm () restituisce il numero di caratteri trasformati, escluso il carattere nullo di terminazione " 0".

Esempio: come funziona la funzione strxfrm ()?

 #include #include #include using namespace std; int main() ( setlocale(LC_COLLATE, "cs_CZ.UTF-8"); const char* s1 = "hrnec"; const char* s2 = "chrt"; char t1(20), t2(20); cout << "strcoll returned " << strcoll(s1,s2) << endl; cout << "Before transformation, " << "strcmp returned " << strcmp(s1,s2) << endl; strxfrm(t1,s1,10); strxfrm(t2,s2,10); cout << "After transformation, " << "strcmp returned " << strcmp(t1,t2) << endl; return 0; )

Quando esegui il programma, l'output sarà:

 strcoll ha restituito -1 Prima della trasformazione, strcmp ha restituito 1 Dopo la trasformazione, strcmp ha restituito -1

Articoli interessanti...