C ++ wcsxfrm () - standardní knihovna C ++

Funkce wcsxfrm () v C ++ transformuje daný široký řetězec zakončený hodnotou null do formy definované implementací.

Funkce wcsxfrm () transformuje široký řetězec tak, že porovnání dvou transformovaných širokých řetězců pomocí funkce wcscmp () vytvoří stejný výsledek jako porovnání původních širokých řetězců pomocí funkce wcscoll () v aktuálním národním prostředí C.

Například xay jsou dva široké řetězce. a a b jsou dva široké řetězce vytvořené transformací x a y pomocí funkce wcsxfrm.

Pak,

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

Je definován v hlavičkovém souboru.

prototyp wcsxfrm ()

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

Funkce wcsxfrm () převede první počet širokých znaků širokého řetězce, na který odkazuje src, do formy definované implementací a výsledek se uloží do umístění paměti, na které ukazuje cíl.

Chování této funkce není definováno, pokud:

  • velikost cíle je menší než požadovaná velikost.
  • dest a src se překrývají.

Parametry wcsxfrm ()

  • dest: ukazatel na pole, kde je uložen transformovaný široký řetězec.
  • src: ukazatel na null zakončený široký řetězec, který má být transformován.
  • count: maximální počet širokých znaků, které se mají převést.

wcsxfrm () Návratová hodnota

Funkce wcsxfrm () vrací počet transformovaných širokých znaků, s výjimkou ukončovacího prázdného širokého znaku L ' 0'.

Příklad: Jak funguje funkce 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; )

Když spustíte program, výstup bude:

 wcscoll vrátil -1 Před transformací, wcscmp vrátil 1 Po transformaci wcscmp vrátil -1

Zajímavé články...