C ++ strxfrm () - Bibliothèque standard C ++

La fonction strxfrm () en C ++ transforme une chaîne d'octets terminée par null en une forme définie par l'implémentation.

La fonction strxfrm () transforme la chaîne de sorte que la comparaison de deux chaînes transformées à l'aide de la fonction strcmp () produit un résultat identique à la comparaison des chaînes d'origine à l'aide de la fonction strcoll () dans la locale C actuelle.

Par exemple, x et y sont deux chaînes. a et b sont deux chaînes formées en transformant respectivement x et y en utilisant la fonction strxfrm. Ensuite, un appel à strcmp (a, b) équivaut à appeler strcoll (x, y).

prototype de strxfrm ()

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

La fonction strxfrm () convertit les premiers caractères de comptage de la chaîne pointée par src en une forme définie par l'implémentation et le résultat est stocké dans l'emplacement mémoire pointé par dest.

Le comportement de cette fonction n'est pas défini si:

  • la taille de la destination est inférieure à la taille requise.
  • dest et src se chevauchent.

Il est défini dans le fichier d'en-tête "> fichier d'en-tête.

Paramètres de strxfrm ()

  • dest: pointeur vers le tableau où la chaîne transformée est stockée.
  • src: pointeur vers la chaîne terminée par null à transformer.
  • count: nombre maximum de caractères à convertir.

strxfrm () Valeur de retour

La fonction strxfrm () renvoie le nombre de caractères transformés, à l'exclusion du caractère nul de fin ' 0'.

Exemple: comment fonctionne la fonction 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; )

Lorsque vous exécutez le programme, la sortie sera:

 strcoll a renvoyé -1 Avant la transformation, strcmp a renvoyé 1 Après la transformation, strcmp a renvoyé -1

Articles intéressants...