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

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

La fonction wcsxfrm () transforme une chaîne large de sorte que la comparaison de deux chaînes larges transformées à l'aide de la fonction wcscmp () produit un résultat identique à la comparaison des chaînes larges d'origine à l'aide de la fonction wcscoll () dans la locale C actuelle.

Par exemple, x et y sont deux chaînes larges. a et b sont deux chaînes larges formées en transformant respectivement x et y en utilisant la fonction wcsxfrm.

Ensuite,

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

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

prototype wcsxfrm ()

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

La fonction wcsxfrm () convertit le premier nombre de caractères larges de la chaîne large 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.

Paramètres wcsxfrm ()

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

wcsxfrm () Valeur renvoyée

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

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

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

 wcscoll a renvoyé -1 Avant la transformation, wcscmp a renvoyé 1 Après la transformation, wcscmp a renvoyé -1

Articles intéressants...