C ++ wcsxfrm () - C ++ - vakiokirjasto

C ++: n wcsxfrm () -funktio muuntaa annetun null-päättyvän leveän merkkijonon toteutuksen määrittelemään muotoon.

Funktio wcsxfrm () muuntaa leveän merkkijonon siten, että kahden muunnetun leveän merkkijonon vertaaminen wcscmp () -toiminnon avulla tuottaa samanlaisen tuloksen kuin alkuperäisten leveiden merkkijonojen vertaaminen wcscoll () -toiminnolla nykyisessä C-kielessä.

Esimerkiksi x ja y ovat kaksi leveää merkkijonoa. a ja b ovat kaksi leveää merkkijonoa, jotka on muodostettu muuntamalla x ja y vastaavasti käyttämällä wcsxfrm-funktiota.

Sitten,

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

Se määritetään otsikkotiedostossa.

wcsxfrm () -prototyyppi

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

Wcsxfrm () -funktio muuntaa src: n osoittaman leveän merkkijonon ensimmäiset laskennan leveät merkit toteutuksen määrittelemään muotoon ja tulos tallennetaan muistiin, johon osoitti.

Tämän toiminnon käyttäytymistä ei ole määritelty, jos:

  • destin koko on vaadittua kokoa pienempi.
  • dest ja src ovat päällekkäisiä.

wcsxfrm () -parametrit

  • dest: osoittaa taulukon, johon muunnettu leveä merkkijono on tallennettu.
  • src: osoitin muunnettavaan nollapäätteiseen leveään merkkijonoon.
  • count: muunnettavien leveiden merkkien enimmäismäärä.

wcsxfrm () Palautusarvo

Wcsxfrm () -funktio palauttaa muunnettujen leveiden merkkien lukumäärän, lukuun ottamatta lopetettavaa tyhjää leveää merkkiä L ' 0'.

Esimerkki: Kuinka wcsxfrm () -toiminto toimii?

 #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; )

Kun suoritat ohjelmaa, tulos on:

 wcscoll palasi -1 Ennen muunnosta wcscmp palasi 1 Muunnoksen jälkeen wcscmp palasi -1

Mielenkiintoisia artikkeleita...