C ++ wcsxfrm () - štandardná knižnica C ++

Funkcia wcsxfrm () v C ++ transformuje daný široký reťazec zakončený nulou do formy definovanej implementáciou.

Funkcia wcsxfrm () transformuje široký reťazec tak, že porovnanie dvoch transformovaných širokých reťazcov pomocou funkcie wcscmp () vedie k rovnakému výsledku ako porovnanie pôvodných širokých reťazcov pomocou funkcie wcscoll () v aktuálnom miestnom prostredí C.

Napríklad x a y sú dva široké reťazce. a a b sú dva široké reťazce vytvorené transformáciou x a y pomocou funkcie wcsxfrm.

Potom,

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

Je definované v hlavičkovom súbore.

prototyp wcsxfrm ()

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

Funkcia wcsxfrm () prevádza prvý počet širokých znakov širokého reťazca, na ktorý odkazuje src, do formy definovanej implementáciou a výsledok sa uloží do pamäťového umiestnenia, na ktoré ukazuje cieľ.

Správanie tejto funkcie nie je definované, ak:

  • veľkosť cieľa je menšia ako požadovaná veľkosť.
  • prekrývajú sa ciele dest a src.

Parametre wcsxfrm ()

  • cieľ: ukazovateľ na pole, kde je uložený transformovaný široký reťazec.
  • src: ukazovateľ na null ukončený široký reťazec, ktorý sa má transformovať.
  • počet: maximálny počet širokých znakov na konverziu.

wcsxfrm () Vrátená hodnota

Funkcia wcsxfrm () vracia počet transformovaných širokých znakov, s výnimkou ukončovacieho prázdneho širokého znaku L ' 0'.

Príklad: Ako funguje funkcia 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; )

Po spustení programu bude výstup:

 wcscoll vrátil -1 Pred transformáciou vrátil wcscmp 1 Po transformácii vrátil wcscmp -1

Zaujímavé články...