Zeichenzuweisungen
Aktualisiert: November 2007
Sehen Sie sich das folgende Beispiel an, in dem die while-Schleife eine Zeichenfolge scannt und alle Zeichen mit Ausnahme des 'X' in eine andere Zeichenfolge kopiert:
while( *sz2 )
{
if( *sz2 != 'X' )
*sz1++ = *sz2++;
else
sz2++;
}
Dieser Code kopiert das Byte in sz2 an den Ort, auf den durch sz1 verwiesen wird. Danach wird sz1 für den Empfang des nächsten Byte inkrementiert. Wenn es sich beim nächsten Zeichen in sz2 jedoch um ein Doppelbytezeichen handelt, wird von der Zuordnung zu sz1 lediglich das erste Byte kopiert. Der folgende Code verwendet eine portable Funktion, um das Zeichen sicher zu kopieren und sz1 und sz2 richtig zu inkrementieren:
while( *sz2 )
{
if( *sz2 != 'X' )
{
_mbscpy_s( sz1, 1, sz2 );
sz1 = _mbsinc( sz1 );
sz2 = _mbsinc( sz2 );
}
else
sz2 = _mbsinc( sz2 );
}