Megosztás a következőn keresztül:


Tudnivalók a sztringekről

A sztringfüggvények lehetővé teszik az alkalmazások számára a karaktersztringek másolását, összehasonlítását, rendezését, formázását és konvertálását, valamint a sztringek karaktertípusának meghatározására használható eszközöket. Minden sztringfüggvény támogatja az egybájtos, a kétbájtos és a Unicode karakterkészletet, ha ezeket a karakterkészleteket az alkalmazás futtatását futtató operációs rendszer támogatja.

Biztonsági figyelmeztetés: A húrfüggvények helytelen használata biztonsági problémákat okozhat az alkalmazásban. Ez általában puffertúlcsordulást jelent, amely szolgáltatásmegtagadásos támadást tehet lehetővé az alkalmazás ellen, vagy végrehajtható kód injektálását egy támadótól. A Strsafe-függvények lehetővé teszik a sztringek biztonságosabb kezelését, és ajánlottak az alkalmazás biztonságának növelése érdekében. További információ ezekről a függvényekről: A Strsafe.h függvényeinek használata.

Ez a szakasz a következő témaköröket ismerteti.

Összehasonlítása a C Run-Time karakterláncfüggvényekkel

Számos sztringfüggvény duplikálja vagy javítja a megszokott sztringfüggvényeket a standard C futásidejű (CRT) kódtárból. Számos fejlesztés lehetővé teszi, hogy a sztringfüggvények Unicode- vagy kiterjesztett karakterkészletekkel működjenek. Az alábbi táblázat a CRT-függvényeket, a Windows-függvényeket (amelyek támogatják a Unicode-függvényeket, ellentétben a CRT-függvényekkel) és a StrSafe függvényeket.

CRT-sztringfüggvény Windows karaktersorfüggvény StrSafe függvény
strcat lstrcat
StringCchCat
StringCchCatEx
StringCbCat
StringCbCatEx
strcmp lstrcmp (nincs egyenértékű függvény)
strcpy lstrcpy
StringCchCopy
StringCchCopyEx
StringCbCopy
StringCbCopyEx
strlen lstrlen
StringCchLength
StringCbLength

 

A strlen függvény például mindig egy sztring bájtjainak számát adja vissza, de az lstrlen függvény a TCHAR értékek számát adja vissza, ami a függvény ANSI-verzióinak bájtjaira, vagy a WCHAR Unicode-verziókra vonatkozó értékekre vonatkozik.

A következő sztringfüggvények eltérnek a standard C függvényektől, például és toupper, mivel egy karakterkészlet bármely karakterén működnek. A CharLower függvénnyel például egy alkalmazás kisbetűssé (Ü) konvertálhat nagybetűs U-t. További információ a karakterkészletekről: egy bájtos karakterkészletek.

Funkció Leírás
CharLower Egy karaktert vagy karakterláncot kisbetűssé alakít át.
CharLowerBuff Karakterláncot kisbetűssé alakít át.
CharNext Ugrás a sztring következő karakterére.
CharPrev A karakterlánc előző karakterére lép.
CharUpper Egy karaktert vagy karakterláncot alakít át nagybetűssé.
CharUpperBuff Karakterláncot nagybetűssé konvertál.

 

Az alábbi sztringfüggvények a felhasználó által kiválasztott nyelv szemantikája alapján határoznak meg egy karaktert. Ezek a függvények Unicode-kompatibilisek.

Funkció Leírás
IsCharAlpha Meghatározza, hogy egy karakter betűrendes-e.
IsCharAlphaNumeric Meghatározza, hogy egy karakter alfanumerikus-e.
IsCharLower Meghatározza, hogy egy karakter kisbetűs-e.
IsCharUpper Meghatározza, hogy egy karakter nagybetűs-e.

 

Az alábbi táblázat a standard C futásidejű (CRT) függvények Unicode-bővítményeit mutatja be. Ahogy korábban említettük, a StrSafe-függvények lehetővé teszik a sztringek biztonságosabb kezelését, és ajánlott az alkalmazás nagyobb biztonsága érdekében.

Standard CRT-függvény Sztringfüggvény StrSafe függvény
sprintf wsprintf
StringCchPrintf
StringCchPrintfEx
StringCbPrintf
StringCbPrintfEx
vsprintf wvsprintf
StringCchVPrintf
StringCchVPrintfEx
StringCbVPrintf
StringCbVPrintfEx

 

Sztringerőforrások

Az az alkalmazás, amely karaktersorozatokat tart karban az erőforrásokban, minimális erőfeszítéssel fordítható le új nyelvekre. Ahelyett, hogy sztringeket keresne a forrásmodulokban, egyszerűen lefordíthatja az erőforrásfájlban lévő sztringeket, és újra összekapcsolhatja az alkalmazást. A sztringerőforrások használata emellett leegyszerűsíti az alkalmazás Unicode- és nem Unicode-verzióinak létrehozását ugyanazon forrásfájlokból.

A LoadString függvény betölt egy sztringerőforrást egy alkalmazás végrehajtható fájljából. A FormatMessage függvény betölt egy sztringerőforrást, és értelmezi a sztringbe ágyazható formázási beállításokat.

A bináris formátumú erőforrások Unicode formátumban vannak tárolva. Erőforrások betöltésekor az alkalmazások az erőforrásfüggvények Unicode-verzióját (példáulLoadStringW) használhatják az erőforrások Unicode-adatokként való lekéréséhez.

16 bites sztringerőforrások esetén a maximális hossz 255 karakter. A 32 bites sztringerőforrások esetében a maximális hossz 65535 karakter.