Поделиться через


Индексы байтов

Используйте следующие советы:

  • Работа с байтовым индексом в строку представляет проблемы, аналогичные тем, которые возникают при манипуляции указателем. Рассмотрим этот пример, который находит символ обратной косой черты в строке:

    while ( rgch[ i ] != '\\' )
        i++;
    

    Это может индексировать замыкающий байт, а не ведущий байт, и поэтому может не указывать на character.

  • Используйте функцию _mbclen для решения предыдущей проблемы:

    while ( rgch[ i ] != '\\' )
        i += _mbclen ( rgch + i );
    

    Это корректно индексирует к ведущему байту, а значит, к character. Функция _mbclen определяет размер символа (1 или 2 байта).

См. также

Советы по программированию с многобайтовыми кодировками (MBCS)
Последний символ в строке