Partager via


Assignation de caractère

Dans l'exemple suivant la boucle while analyse une chaîne et copie tous les caractères à l'exception de « X » dans une autre chaîne :

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

Le code copie l'octet situé au niveau sz2 à l'emplacement vers lequel pointe sz1, puis incrémente sz1 pour recevoir l'octet suivant. Mais si le caractère suivant dans sz2 est un caractère codé sur deux octets, l'assignation à sz1 copie uniquement le premier octet. Le code suivant utilise une fonction portable pour copier le caractère et une autre pour incrémenter sz1 et sz2 correctement :

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

Voir aussi

Concepts

Conseils de programmation MBCS

Comparaison de caractères