Condividi tramite


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 sz1cui 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