Compartir a través de


Asignación de caracteres

Observe el ejemplo siguiente, en el que el bucle while examina una cadena y copia todos los caracteres excepto 'X' en otra cadena:

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

El código copia el byte de sz2 en la ubicación a la que apunta sz1, y aumenta sz1 para que reciba el siguiente byte. Pero si el carácter siguiente de sz2 es un carácter de doble byte, la asignación a sz1 sólo copia el primer byte. El código siguiente utiliza una función portable para copiar el carácter de forma segura y otra función para aumentar correctamente sz1 y sz2:

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

Vea también

Conceptos

Sugerencias de programación para MBCS

Comparación de caracteres