Informationen über Zeichenfolgen

Die Zeichenfolgenfunktionen bieten Anwendungen die Möglichkeit, Zeichenfolgen zu kopieren, zu vergleichen, zu sortieren, zu formatieren und zu konvertieren, sowie die Mittel zum Bestimmen des Zeichentyps jedes Zeichens in einer Zeichenfolge. Alle Zeichenfolgenfunktionen unterstützen die Einzelbyte-, Doppelbyte- und Unicode-Zeichensätze, wenn diese Zeichensätze vom Betriebssystem unterstützt werden, auf dem die Anwendung ausgeführt wird.

Sicherheitswarnung: Die falsche Verwendung von Zeichenfolgenfunktionen kann zu Sicherheitsproblemen für Ihre Anwendung führen. In der Regel umfasst dies einen Pufferüberlauf, der einen Denial-of-Service-Angriff auf Ihre Anwendung oder die Einschleusung von ausführbarem Code von einem Angreifer ermöglichen kann. Die Strsafe-Funktionen ermöglichen die sicherere Handhabung von Zeichenfolgen und werden für eine bessere Sicherheit für Ihre Anwendung empfohlen. Weitere Informationen zu diesen Funktionen finden Sie unter Verwenden der Strsafe.h-Funktionen.

In diesem Abschnitt werden die folgenden Themen erläutert.

Vergleich mit C-Run-Time-Zeichenfolgenfunktionen

Viele Zeichenfolgenfunktionen duplizieren oder verbessern vertraute Zeichenfolgenfunktionen aus der C-Laufzeitbibliothek (CRT). Viele der Verbesserungen ermöglichen es den Zeichenfolgenfunktionen, mit Unicode oder erweiterten Zeichensätzen zu arbeiten. Die folgende Tabelle zeigt die CRT-Funktionen, die Windows-Funktionen (die Unicode unterstützen, im Gegensatz zu den CRT-Funktionen) und die StrSafe-Funktionen.

CRT-Zeichenfolgenfunktion Windows-Zeichenfolgenfunktion StrSafe-Funktion
strcat lstrcat
StringCchCat
StringCchCatEx
StringCbCat
StringCbCatEx
Strcmp lstrcmp (keine gleichwertige Funktion)
strcpy lstrcpy
StringCchCopy
StringCchCopyEx
StringCbCopy
StringCbCopyEx
strlen lstrlen
StringCchLength
StringCbLength

 

Die strlen-Funktion gibt z. B. immer die Anzahl der Bytes in einer Zeichenfolge zurück, aber die lstrlen-Funktion gibt die Anzahl der TCHAR-Werte zurück, die sich auf Bytes für ANSI-Versionen der Funktion oder auf WCHAR-Werte für Unicode-Versionen bezieht.

Die folgenden Zeichenfolgenfunktionen unterscheiden sich von C-Standardfunktionen wie tolower und toupper darin, dass sie mit jedem Zeichen in einem Zeichensatz arbeiten. Mithilfe der CharLower-Funktion kann z. B. eine Anwendung ein Großbuchstaben-U mit einem Umlaut (Ü) in Kleinbuchstaben (ü) konvertieren. Weitere Informationen zu Zeichensätzen finden Sie unter Einzelbytezeichensätze.

Funktion BESCHREIBUNG
CharLower Konvertiert ein Zeichen oder eine Zeichenfolge in Kleinbuchstaben.
CharLowerBuff Konvertiert eine Zeichenfolge in Kleinbuchstaben.
CharNext Wechselt zum nächsten Zeichen in einer Zeichenfolge.
CharPrev Wechselt zum vorherigen Zeichen in einer Zeichenfolge.
CharUpper Konvertiert ein Zeichen oder eine Zeichenfolge in Großbuchstaben.
CharUpperBuff Konvertiert eine Zeichenfolge in Großbuchstaben.

 

Die folgenden Zeichenfolgenfunktionen bestimmen ein Zeichen basierend auf der Semantik der vom Benutzer ausgewählten Sprache. Diese Funktionen sind Unicode aktiviert.

Funktion BESCHREIBUNG
IsCharAlpha Bestimmt, ob ein Zeichen alphabetisch ist.
IsCharAlphanumeric Bestimmt, ob ein Zeichen alphanumerisch ist.
IsCharLower Bestimmt, ob ein Zeichen Kleinbuchstaben ist.
IsCharUpper Bestimmt, ob ein Zeichen Großbuchstaben ist.

 

In der folgenden Tabelle sind die Unicode-Erweiterungen der C-Laufzeitfunktionen (CRT) aufgeführt. Wie bereits erwähnt, ermöglichen die StrSafe-Funktionen eine sicherere Behandlung von Zeichenfolgen und werden für eine bessere Sicherheit für Ihre Anwendung empfohlen.

CRT-Standardfunktion String-Funktion StrSafe-Funktion
sprintf wsprintf
StringCchPrintf
StringCchPrintfEx
StringCbPrintf
StringCbPrintfEx
vsprintf wvsprintf
StringCchVPrintf
StringCchVPrintfEx
StringCbVPrintf
StringCbVPrintfEx

 

Zeichenfolgenressourcen

Eine Anwendung, die Zeichenfolgen in Ressourcen verwaltet, kann mit minimalem Aufwand in neue Sprachen übersetzt werden. Anstatt in den Quellmodulen nach Zeichenfolgen zu suchen, können Sie einfach die Zeichenfolgen in der Ressourcendatei übersetzen und die Anwendung erneut verknüpfen. Darüber hinaus vereinfacht die Verwendung von Zeichenfolgenressourcen die Erstellung von Unicode- und Nicht-Unicode-Versionen der Anwendung aus denselben Quelldateien.

Die LoadString-Funktion lädt eine Zeichenfolgenressource aus der ausführbaren Datei einer Anwendung. Die FormatMessage-Funktion lädt eine Zeichenfolgenressource und interpretiert Formatierungsoptionen, die in die Zeichenfolge eingebettet sein können.

Ressourcen in binärer Form werden im Unicode-Format gespeichert. Beim Laden von Ressourcen können Anwendungen die Unicode-Version der Ressourcenfunktionen (z. B. LoadStringW) verwenden, um Ressourcen als Unicode-Daten abzurufen.

Für 16-Bit-Zeichenfolgenressourcen ist die maximale Länge 255 Zeichen. Für 32-Bit-Zeichenfolgenressourcen ist die maximale Länge 65535 Zeichen.