次の方法で共有


文字の代入

while ループが文字列をスキャンし、'X' を除くすべての文字を別の文字列にコピーする次の例を考えます。

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

このコードは、sz2 のバイトを sz1 が指す場所にコピーし、次のバイトを受け取るまで sz1 をインクリメントします。 ただし、sz2 の次の文字が 2 バイト文字の場合、sz1 への代入は最初のバイトのみをコピーします。 次のコードでは、ポータブル関数を使用して文字を安全にコピーし、sz1sz2 を正しくインクリメントします。

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

関連項目

MBCS のプログラミングについて
文字の比較