Partager via


Assignation de caractère

Prenons l’exemple suivant, dans lequel la while boucle analyse une chaîne, en copiant 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 à sz2 l’emplacement pointé par sz1, puis incrémente sz1 pour recevoir l’octet suivant. Toutefois, si le caractère suivant est sz2 un caractère double octet, l’affectation pour sz1 copier uniquement le premier octet. Le code suivant utilise une fonction portable pour copier le caractère en toute sécurité et un 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

Conseils de programmation MBCS
Comparaison de caractères