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.