Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Strängfunktionerna ger program möjlighet att kopiera, jämföra, sortera, formatera och konvertera teckensträngar samt metoder för att fastställa teckentypen för varje tecken i en sträng. Alla strängfunktioner stöder teckenuppsättningarna single-byte, double-byte och Unicode om dessa teckenuppsättningar stöds av operativsystemet där programmet körs.
Säkerhetsvarning: Felaktig användning av strängfunktioner kan orsaka säkerhetsproblem för ditt program. Detta innebär vanligtvis en buffertöverskridning som kan tillåta en överbelastningsattack mot ditt program eller inmatning av körbar kod från en angripare. Strsafe-funktionerna möjliggör säkrare hantering av strängar och rekommenderas för bättre säkerhet för ditt program. Mer information om dessa funktioner finns i Using the Strsafe.h Functions.
I det här avsnittet beskrivs följande avsnitt.
Jämförelse med C Run-Time String Functions
Många strängfunktioner duplicerar eller förbättrar välbekanta strängfunktioner från CRT-standardbiblioteket (C Run-time). Många av förbättringarna gör att strängfunktionerna kan fungera med Unicode eller utökade teckenuppsättningar. I följande tabell visas CRT-funktionerna, Windows-funktionerna (som stöder Unicode, till skillnad från CRT-funktionerna) och StrSafe-funktionerna.
| CRT-strängfunktion | Windows-strängfunktion | StrSafe-funktion |
|---|---|---|
| strcat | lstrcat | |
| strcmp | lstrcmp | (ingen motsvarande funktion) |
| strcpy | lstrcpy | |
| strlen | lstrlen |
Funktionen strlen returnerar till exempel alltid antalet byte i en sträng, men funktionen lstrlen returnerar antalet TCHAR- värden, som refererar till byte för ANSI-versioner av funktionen eller WCHAR- värden för Unicode-versioner.
Följande strängfunktioner skiljer sig från C-standardfunktioner, till exempel tolower och toupper i det att de fungerar på alla tecken i en teckenuppsättning. Med funktionen CharLower kan till exempel ett program konvertera ett versalt U med en trema (Ü) till gemener (ü). Mer information om teckenuppsättningar finns i enkortsteckenuppsättningar.
| Funktion | Beskrivning |
|---|---|
| CharLower | Konverterar ett tecken eller en sträng till gemener. |
| CharLowerBuff | Konverterar en teckensträng till gemener. |
| CharNext | Flyttar till nästa tecken i en sträng. |
| CharPrev | Flyttar till föregående tecken i en sträng. |
| CharUpper | Konverterar ett tecken eller en sträng till versaler. |
| CharUpperBuff | Konverterar en sträng till versaler. |
Följande strängfunktioner beskriver ett tecken baserat på semantiken för det språk som användaren har valt. Dessa funktioner är Unicode-aktiverade.
| Funktion | Beskrivning |
|---|---|
| IsCharAlpha | Avgör om ett tecken är alfabetiskt. |
| IsCharAlphaNumeric | Avgör om ett tecken är alfanumeriskt. |
| IsCharLower | Avgör om ett tecken är en liten bokstav. |
| IsCharUpper | Avgör om ett tecken är versalt. |
I följande tabell visas Unicode-tilläggen till CRT-standardfunktionerna (C run-time). Som tidigare nämnts möjliggör StrSafe-funktionerna säkrare hantering av strängar och rekommenderas för bättre säkerhet för ditt program.
| Crt-standardfunktion | Strängfunktion | StrSafe-funktion |
|---|---|---|
| sprintf | wsprintf | |
| vsprintf | wvsprintf |
Strängresurser
Ett program som hanterar teckensträngar i resurser kan översättas till nya språk med minimalt arbete. I stället för att söka efter strängar i källmodulerna kan du helt enkelt översätta strängarna i resursfilen och länka om programmet. Dessutom förenklar användningen av strängresurser skapandet av Unicode- och icke-Unicode-versioner av programmet från samma källfiler.
Funktionen LoadString läser in en strängresurs från ett programs körbara fil. Funktionen FormatMessage läser in en strängresurs och tolkar formateringsalternativ som kan bäddas in i strängen.
Resurser i binär form lagras i Unicode-format. När du läser in resurser kan program använda Unicode-versionen av resursfunktionerna (LoadStringW, till exempel) för att hämta resurser som Unicode-data.
För 16-bitars strängresurser är 255 tecken den maximala längden. För 32-bitars strängresurser är 65535 tecken den maximala längden.