Funktionen wcsxfrm () i C ++ förvandlar en given null-avslutad bredsträng till en implementeringsdefinierad form.
Funktionen wcsxfrm () transformerar en bred sträng så att jämförelse av två transformerade bredsträngar med wcscmp () -funktionen ger identiskt resultat som att jämföra de ursprungliga bredsträngarna med wcscoll () -funktionen i det aktuella C-läget.
Till exempel är x och y två breda strängar. a och b är två breda strängar bildade genom att transformera x respektive y med hjälp av wcsxfrm-funktionen.
Sedan,
wcscmp (a, b) = wcscoll (x, y)
Det definieras i rubrikfilen.
wcsxfrm () prototyp
size_t wcsxfrm (wchar_t * dest, const wchar_t * src, size_t count);
Funktionen wcsxfrm () omvandlar de första räkningen breda tecken i den breda strängen som pekas på av src till en implementeringsdefinierad form och resultatet lagras på minnesplatsen som dest.
Funktionen för denna funktion är odefinierad om:
- storleken på dest är mindre än den önskade storleken.
- dest och src överlappar varandra.
wcsxfrm () Parametrar
- dest: pekare till matrisen där den transformerade breda strängen lagras.
- src: pekaren till den null-avslutade bredsträngen som ska transformeras.
- räkna: maximalt antal breda tecken att konvertera.
wcsxfrm () Returvärde
Funktionen wcsxfrm () returnerar antalet transformerade breda tecken, exklusive det avslutande null-breda karaktär L ' 0'.
Exempel: Hur fungerar 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; )
När du kör programmet blir resultatet:
wcscoll returnerade -1 Före transformation returnerade wcscmp 1 Efter transformation returnerade wcscmp -1