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 );
}