C ++ wcsxfrm () - Biblioteca standard C ++

Funcția wcsxfrm () din C ++ transformă un șir larg terminat nul într-o formă definită de implementare.

Funcția wcsxfrm () transformă un șir larg astfel încât compararea a două șiruri largi transformate folosind funcția wcscmp () produce rezultate identice cu compararea șirurilor largi originale folosind funcția wcscoll () în localitatea C curentă.

De exemplu, x și y sunt două șiruri largi. a și b sunt două șiruri largi formate prin transformarea lui x și, respectiv, folosind funcția wcsxfrm.

Apoi,

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

Este definit în fișierul antet.

wcsxfrm () prototip

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

Funcția wcsxfrm () convertește primul număr de caractere largi ale șirului larg indicat de src într-un formular definit de implementare și rezultatul este stocat în locația de memorie indicată de dest.

Comportamentul acestei funcții este nedefinit dacă:

  • dimensiunea dest este mai mică decât dimensiunea necesară.
  • dest și src se suprapun.

wcsxfrm () Parametri

  • dest: pointer către matricea unde este stocat șirul larg transformat.
  • src: indicatorul către șirul larg terminat nul pentru a fi transformat.
  • count: număr maxim de caractere largi de convertit.

wcsxfrm () Valoare returnată

Funcția wcsxfrm () returnează numărul de caractere largi transformate, excluzând caracterul larg nul care termină L ' 0'.

Exemplu: Cum funcționează funcția 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; )

Când rulați programul, ieșirea va fi:

 wcscoll a returnat -1 Înainte de transformare, wcscmp a returnat 1 După transformare, wcscmp a returnat -1

Articole interesante...