Sdílet prostřednictvím


strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l

Převést řetězec na základě informací specifických pro národní prostředí.

size_t strxfrm(
   char *strDest,
   const char *strSource,
   size_t count 
);
size_t wcsxfrm(
   wchar_t *strDest,
   const wchar_t *strSource,
   size_t count 
);
size_t _strxfrm_l(
   char *strDest,
   const char *strSource,
   size_t count,
   _locale_t locale
);
size_t wcsxfrm_l(
   wchar_t *strDest,
   const wchar_t *strSource,
   size_t count,
   _locale_t locale
);

Parametry

  • strDest
    Určení řetězec.

  • strSource
    Zdrojový řetězec.

  • count
    Maximální počet znaků, které chcete umístit do strDest*.*

  • locale
    Národní prostředí použít.

Vrácená hodnota

Vrací délku řetězce transformovaný nepočítají ukončujícím znakem null.Pokud je vrácená hodnota je větší než nebo rovno count, obsah strDest nelze předvídat.Na chybu, každá funkce nastaví errno a vrátí INT_MAX.Neplatný znak errno je nastavena na EILSEQ.

Poznámky

strxfrm Funkce transformuje odkazuje řetězec strSource do nového Kompletované formulář, který je uložen v strDest.Více než count jsou transformovány a umístěny do výsledný řetězec znaků, včetně znakem null.Transformace se provádí pomocí příslušného národního prostředí LC_COLLATE kategorie nastavení.Další informace o LC_COLLATE, viz setlocale.strxfrmpoužívá aktuální národní prostředí pro své národní prostředí závislé na chování; _strxfrm_lje identické používá národní prostředí předaný namísto aktuální národní prostředí.Další informace naleznete v tématu Národní prostředí.

Po transformaci volání strcmp se dvěma řetězci transformovaný dává výsledky, které jsou stejné jako volání strcoll u původní dva řetězce.Stejně jako strcoll a stricoll, strxfrm automaticky zpracovává vícebajtových znaků řetězce podle potřeby.

wcsxfrmje verze celého znaku strxfrm; argumenty řetězec wcsxfrm jsou ukazatele celého znaku.Pro wcsxfrm, po transformaci řetězec, volání wcscmp se dvěma řetězci transformovaný dává výsledky, které jsou stejné jako volání wcscoll u původní dva řetězce.wcsxfrma strxfrm chovají jinak shodně.wcsxfrmpoužívá aktuální národní prostředí pro své národní prostředí závislé na chování; _wcsxfrm_lpoužívá národní prostředí předaný namísto aktuální národní prostředí.

Tyto funkce ověřit jejich parametrů.Pokud strSource je nulový ukazatel nebo strDest je ukazatel hodnotu NULL (Pokud počet není nula), nebo pokud count je větší než INT_MAX, vyvolat neplatný parametr popisovače, jak je popsáno v Ověření parametrů .Pokud je povoleno spuštění pokračovat, nastavit tyto funkce errno na EINVAL a vrátit se INT_MAX.

Obecný Text rutinní mapování

TCHAR.Rutina H

_UNICODE & _MBCS není definován

_MBCS, definice

_UNICODE, definice

_tcsxfrm

strxfrm

strxfrm

wcsxfrm

_tcsxfrm_l

_strxfrm_l

_strxfrm_l

_wcsxfrm_l

"C" národní prostředí je pořadí znaků ve znakové sadě (znaková sada ASCII) stejné jako lexicographic znaků.V jiné národní prostředí však pořadí znaků ve znakové sadě mohou lišit od pořadí lexicographic znaků.Například v některých evropských národních znaků "a" (hodnota 0x61) předchází znak ' & # x00E4; " (hodnota 0xE4) do znakové sady, ale znak 'ä' předchází znak 'a' lexicographically.

V národních prostředí, pro které se liší znakové sady a pořadí znaků lexicographic, strxfrm na původní řetězce a pak strcmp na výsledné řetězce vyrábět porovnání řetězců lexicographic podle aktuální národní prostředí LC_COLLATE kategorie nastavení.Tedy porovnání lexicographically v národním prostředí nad dva řetězce, použijte strxfrm na původní řetězce pak strcmp na výsledné řetězce.Můžete také použít strcoll namísto strcmp na původní řetězce.

strxfrmje v podstatě obal kolem LCMapString s LCMAP_SORTKEY.

Následující výraz hodnotu velikost pole nutné držet strxfrm transformace zdrojový řetězec:

1 + strxfrm( NULL, string, 0 )

V národním prostředí "C", strxfrm je ekvivalentní následující:

strncpy( _string1, _string2, _count );
return( strlen( _string1 ) );

Požadavky

Rutina

Požadované záhlaví

strxfrm

<string.h>

wcsxfrm

<string.h> nebo <wchar.h>

_strxfrm_l

<string.h>

_wcsxfrm_l

<string.h> nebo <wchar.h>

Další informace o kompatibilitě, viz Compatibility v úvodu.

Ekvivalent v rozhraní .NET Framework

Nelze použít Použijte volání funkce standardní C, PInvoke. Další informace naleznete v tématu Příklady vyvolat platformu.

Viz také

Referenční dokumentace

Převod dat

localeconv

setlocale _wsetlocale

Národní prostředí

Manipulaci s řetězci (CRT)

Funkce strcoll

strcmp, wcscmp, _mbscmp

strncmp, wcsncmp, _mbsncmp, _mbsncmp_l