Sdílet prostřednictvím


Znak přiřazení

Vezměte si následující příklad, ve kterém cyklus while prohledává řetězec a zkopíruje do jiného řetězce všechny znaky kromě znaku "X":

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

Kód zkopíruje bajt sz2 do místa, ukazující na sz1, pak inkrementuje sz1 příjmem dalšího bajtu. Ale pokud následující znak v sz2 je dvoubajtovým znakem, přiřadí se sz1 zkopírováním pouze prvního bajtu. Následující kód použití přenosné funkce, kopíruje znak bezpečně a pro jinak zvyšené sz1 a sz2 správně:

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

Viz také

Koncepty

Programovací tipy znakové sady MBCS

Porovnání znaku