Asignación de caracteres
Considere el ejemplo siguiente, en el que el bucle while
examina una cadena, copiando todos los caracteres excepto "X" en otra cadena:
while( *sz2 )
{
if( *sz2 != 'X' )
*sz1++ = *sz2++;
else
sz2++;
}
El código copia el byte en sz2
en la ubicación a la que apunta sz1
y, a continuación, incrementa sz1
para recibir el siguiente byte. Pero si el siguiente carácter sz2
es un carácter de doble byte, la asignación de sz1
solo copia el primer byte. El código siguiente usa una función portátil para copiar el carácter de forma segura y otra para incrementar sz1
y sz2
correctamente:
while( *sz2 )
{
if( *sz2 != 'X' )
{
_mbscpy_s( sz1, 1, sz2 );
sz1 = _mbsinc( sz1 );
sz2 = _mbsinc( sz2 );
}
else
sz2 = _mbsinc( sz2 );
}
Consulte también
Sugerencias de programación para MBCS
Comparación de caracteres