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


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

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

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

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

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

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

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

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

См. также

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