Byte-Indizes
Aktualisiert: November 2007
Beachten Sie folgende Tipps:
Bei der Verwendung eines byteweisen Index in einer Zeichenfolge treten ähnliche Probleme wie bei der Bearbeitung von Zeigern auf. Das folgende Beispiel, in dem eine Zeichenfolge nach einem umgekehrten Schrägstrich durchsucht wird, verdeutlicht das Problem:
while ( rgch[ i ] != '\\' ) i++;
Dadurch wird unter Umständen ein nachfolgendes und kein führendes Byte indiziert und folglich auf kein character verwiesen.
Verwenden Sie die Funktion _mbclen, um das obige Problem zu lösen:
while ( rgch[ i ] != '\\' ) i += _mbclen ( rgch + i );
Hiermit wird vorschriftsmäßig auf ein führendes Byte, also auf ein character verwiesen. Mit der _mbclen-Funktion wird die Größe des Zeichens ermittelt (1 Byte oder 2 Bytes).