Partilhar via


Atribuição de caractere

Considere o exemplo a seguir, na qual o while loop examina uma seqüência de caracteres, copiando todos os caracteres, exceto 'X' em outra seqüência de caracteres:

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

O código copia o byte no sz2 para o local apontado pelo sz1, em seguida, incrementa sz1 para receber o próximo byte. Mas se o próximo caractere no sz2 é um caractere de byte duplo, a atribuição de sz1 copia apenas o primeiro byte. O código a seguir usa uma função portátil para copiar o caractere com segurança e outro para incrementar sz1 e sz2 corretamente:

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

Consulte também

Conceitos

Dicas de programação de MBCS

Comparação de caractere