Aracılığıyla paylaş


Karakter Atama

Döngünün bir dizeyi while taradığı ve 'X' dışındaki tüm karakterleri başka bir dizeye kopyaladığı aşağıdaki örneği göz önünde bulundurun:

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

Kod, bayt değerini sz2 ile işaret edilen sz1konuma kopyalar ve sonraki bayt değerini almak için artar sz1 . Ancak içindeki sz2 bir sonraki karakter çift baytlık bir karakterse, atama yalnızca sz1 ilk baytı kopyalar. Aşağıdaki kod, karakteri güvenli bir şekilde kopyalamak için taşınabilir bir işlev, artırmak ve sz1 doğru şekilde artırmak sz2 için başka bir işlev kullanır:

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

Ayrıca bkz.

MBCS Programlama İpuçları
Karakter Karşılaştırma