Индексы байтов
Рекомендации:
Работа с побайтовым индексом в строке может вызвать проблемы, аналогичные проблемам, которые возникают при манипуляциях указателем.Рассмотрим пример, в котором выполняется просмотр строки на наличие знаков обратной косой черты:
while ( rgch[ i ] != '\\' ) i++;
Это может быть индексом младшего байта, а не старшего байта, и поэтому не может указывать на character.
Используйте функцию _mbclen, чтобы разрешить предыдущую проблему:
while ( rgch[ i ] != '\\' ) i += _mbclen ( rgch + i );
Этот пример правильно индексирует первый байт, и поэтому и character.Функция _mbclen определяет размер знака (1 или 2 байта).