Присваивание символов
Рассмотрим следующий пример, в котором while
цикл сканирует строку, копируя все символы, кроме X, в другую строку:
while( *sz2 )
{
if( *sz2 != 'X' )
*sz1++ = *sz2++;
else
sz2++;
}
Код копирует байт в sz2
расположение, на которое указывает, sz1
а затем увеличивается sz1
для получения следующего байта. Но если следующий символ является sz2
двойным байтом, назначение sz1
копирует только первый байт. Следующий код использует переносимую функцию для безопасного копирования символа и другого для увеличения sz1
и sz2
правильности.
while( *sz2 )
{
if( *sz2 != 'X' )
{
_mbscpy_s( sz1, 1, sz2 );
sz1 = _mbsinc( sz1 );
sz2 = _mbsinc( sz2 );
}
else
sz2 = _mbsinc( sz2 );
}
См. также
Советы по программированию многобайтовой кодировки
Сравнение знаков