Índices de byte
Use as seguintes dicas:
Trabalhando com um índice de bytewise em uma seqüência apresenta problemas semelhantes àqueles apresentados pela manipulação do ponteiro. Considere este exemplo, o que faz a varredura de uma seqüência de caracteres para um caractere de barra invertida:
while ( rgch[ i ] != '\\' ) i++;
Isso pode indexar um byte de seguimento, não é um byte inicial, e portanto não pode apontar para um character.
Use o _mbclen a função para solucionar o problema anterior:
while ( rgch[ i ] != '\\' ) i += _mbclen ( rgch + i );
Isso indexa corretamente para um byte inicial, portanto, para um character. O _mbclen função determina o tamanho de um caractere (1 ou 2 bytes).