C ++ wcsxfrm () - Standardna knjižnica C ++

Funkcija wcsxfrm () v jeziku C ++ pretvori dani ničelno zaključen širok niz v obliko, določeno z izvedbo.

Funkcija wcsxfrm () pretvori širok niz, tako da primerjava dveh preoblikovanih širokih nizov s funkcijo wcscmp () ustvari enak rezultat kot primerjava izvirnih širokih nizov s funkcijo wcscoll () v trenutnem jeziku C.

Na primer, x in y sta dva široka niza. a in b sta dva široka niza, tvorjena s pretvorbo x oziroma y s funkcijo wcsxfrm.

Potem,

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

Določen je v datoteki glave.

prototip wcsxfrm ()

 velikost_t wcsxfrm (wchar_t * dest, const wchar_t * src, število_t štetje);

Funkcija wcsxfrm () pretvori prve števke širokih znakov širokega niza, na katerega kaže src, v obliko, določeno z izvedbo, rezultat pa se shrani na pomnilniško mesto, na katerega kaže dest.

Obnašanje te funkcije ni določeno, če:

  • velikost dest je manjša od zahtevane velikosti.
  • dest in src se prekrivata.

wcsxfrm () Parametri

  • dest: kazalec na matriko, kjer je shranjen preoblikovani široki niz.
  • src: kazalec na ničelno zaključen širok niz, ki ga je treba pretvoriti.
  • count: največje število širokih znakov za pretvorbo.

wcsxfrm () Vrnjena vrednost

Funkcija wcsxfrm () vrne število preoblikovanih širokih znakov, razen končnega ničelnega znaka L ' 0'.

Primer: Kako deluje funkcija 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; )

Ko zaženete program, bo rezultat:

 wcscoll vrnil -1 Pred preoblikovanjem je wcscmp vrnil 1 Po preoblikovanju je wcscmp vrnil -1

Zanimive Članki...