Incrementando e decrementando ponteiros
Use as dicas a seguir:
Ponto para os bytes de liderança, não do bytes de trilha. Geralmente não é seguro ter um ponteiro para um byte de trilha. Geralmente, é mais seguro verificar uma cadeia de caracteres para a frente em vez de inversa.
Há funções de incremento/decremento de ponteiro e macros disponíveis que se movem sobre um caractere inteiro:
sz1++;
torna-se:
sz1 = _mbsinc( sz1 );
O
_mbsinc
e_mbsdec
as funções incrementam e decrementam corretamente em unidadescharacter
, independentemente do tamanho do caractere.Para decrementos, você precisa de um ponteiro para a cabeça da cadeia de caracteres, como no seguinte:
sz2--;
torna-se:
sz2 = _mbsdec( sz2Head, sz2 );
Como alternativa, o ponteiro da cabeça pode ser para um caractere válido na cadeia de caracteres, de modo que:
sz2Head < sz2
Você deve ter um ponteiro para um byte principal válido conhecido.
Talvez você queira manter um ponteiro para o caractere anterior para chamadas mais rápidas
_mbsdec
.