Condividi tramite


Assegnazione di caratteri

Si consideri l'esempio seguente, nel quale il ciclo while effettua l'analisi di una stringa, copiando in un'altra stringa tutti i caratteri tranne 'X':

while( *sz2 )
{
    if( *sz2 != 'X' )
        *sz1++ = *sz2++;
    else
        sz2++;
}

Il codice copia il byte in sz2 nella posizione indicata da sz1, quindi incrementa sz1 per ricevere il byte successivo. Se però il carattere successivo presente in sz2 è un carattere a byte doppio, tramite l'assegnazione a sz1 verrà copiato solo il byte iniziale. Nel codice seguente viene utilizzata una funzione portabile per copiare il carattere e un'altra funzione dello stesso tipo per incrementare correttamente sz1 e sz2:

while( *sz2 )
{
    if( *sz2 != 'X' )
    {
        _mbscpy_s( sz1, 1, sz2 );
        sz1 = _mbsinc( sz1 );
        sz2 = _mbsinc( sz2 );
    }
    else
        sz2 = _mbsinc( sz2 );
}

Vedere anche

Concetti

Suggerimenti sulla programmazione MBCS

Confronto tra caratteri