Bagikan melalui


Penetapan Karakter

Pertimbangkan contoh berikut, di mana while perulangan memindai string, menyalin semua karakter kecuali 'X' ke dalam string lain:

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

Kode menyalin byte ke sz2 lokasi yang ditunjukkan oleh sz1, lalu bertambah sz1 untuk menerima byte berikutnya. Tetapi jika karakter berikutnya dalam sz2 adalah karakter byte ganda, tugas untuk sz1 menyalin hanya byte pertama. Kode berikut menggunakan fungsi portabel untuk menyalin karakter dengan aman dan lain ke kenaikan sz1 dan sz2 dengan benar:

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

Lihat juga

Tips Pemrograman MBCS
Perbandingan Karakter