Přiřazení znaků

Podívejte se na následující příklad, ve kterém while smyčka prohledá řetězec a zkopíruje všechny znaky kromě X do jiného řetězce:

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

Kód zkopíruje bajt na sz2 místo, na které sz1odkazuje , a pak zvýší sz1 , aby získal další bajt. Pokud je ale dalším znakem dvoubatový znak sz2 , přiřazení ke sz1 kopírování pouze prvního bajtu. Následující kód používá přenosnou funkci ke bezpečnému zkopírování znaku a dalšího pro zvýšení a sz1 správné zvýšenísz2:

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

Viz také

MBCS – tipy pro programování
Porovnávání znaků