Freigeben über


Zeichenzuweisungen

Betrachten Sie das folgende Beispiel, in dem die while Schleife eine Zeichenfolge durchsucht und alle Zeichen mit Ausnahme von "X" in eine andere Zeichenfolge kopiert:

while( *sz2 )
{
    if( *sz2 != 'X' )
        *sz1++ = *sz2++;
    else
        sz2++;
}

Der Code kopiert das Byte an sz2 die Stelle, auf sz1die verwiesen wird, und erhöht dann, sz1 um das nächste Byte zu empfangen. Wenn das nächste Zeichen jedoch sz2 ein Doppelbytezeichen ist, kopiert die Zuordnung sz1 nur das erste Byte. Der folgende Code verwendet eine tragbare Funktion, um das Zeichen sicher und ein anderes zu kopieren, um inkrementieren sz1 und sz2 richtig zu kopieren:

while( *sz2 )
{
    if( *sz2 != 'X' )
    {
        _mbscpy_s( sz1, 1, sz2 );
        sz1 = _mbsinc( sz1 );
        sz2 = _mbsinc( sz2 );
    }
    else
        sz2 = _mbsinc( sz2 );
}

Siehe auch

Tipps für die MBCS-Programmierung
Zeichenvergleich