Assegnazione di caratteri
Si consideri l'esempio seguente, in cui il while
ciclo analizza una stringa, copiando tutti i caratteri tranne 'X' in un'altra stringa:
while( *sz2 )
{
if( *sz2 != 'X' )
*sz1++ = *sz2++;
else
sz2++;
}
Il codice copia il byte in corrispondenza sz2
della posizione a sz1
cui punta , quindi incrementa sz1
per ricevere il byte successivo. Tuttavia, se il carattere successivo in sz2
è un carattere a byte doppio, l'assegnazione per sz1
copiare solo il primo byte. Il codice seguente usa una funzione portabile per copiare il carattere in modo sicuro e un altro per incrementare sz1
e sz2
correttamente:
while( *sz2 )
{
if( *sz2 != 'X' )
{
_mbscpy_s( sz1, 1, sz2 );
sz1 = _mbsinc( sz1 );
sz2 = _mbsinc( sz2 );
}
else
sz2 = _mbsinc( sz2 );
}
Vedi anche
Suggerimenti sulla programmazione MBCS
Confronto tra caratteri