Увеличение и уменьшение значений указателей
Используйте следующие советы:
Наведите указатель на байты свинца, а не байты на конечную точку. Обычно небезопасно иметь указатель на байт тропы. Обычно это безопаснее для сканирования строки вперед, а не обратно.
Существуют функции увеличения и уменьшения указателя, доступные для перемещения по всему символу:
sz1++;
Становится:
sz1 = _mbsinc( sz1 );
_mbsdec
И_mbsinc
функция правильно увеличивается и уменьшается вcharacter
единицах независимо от размера символа.Для уменьшений необходимо указатель на голову строки, как показано в следующем:
sz2--;
Становится:
sz2 = _mbsdec( sz2Head, sz2 );
Кроме того, указатель на голову может быть допустимым символом в строке, таким образом:
sz2Head < sz2
У вас должен быть указатель на известный допустимый байт свинца.
Возможно, вам потребуется сохранить указатель на предыдущий символ для ускорения вызовов
_mbsdec
.
См. также
Советы по программированию многобайтовой кодировки
Индексы байтов