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 | |
Strcmp | lstrcmp | (keine gleichwertige Funktion) |
strcpy | lstrcpy | |
strlen | lstrlen |
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 | |
vsprintf | wvsprintf |
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.