次の方法で共有


バイト インデックス

次のヒントを参考にしてください。

  • 文字列に対してバイト単位のインデックスを使用すると、ポインター操作によって発生するものと同様の問題が発生します。 文字列をスキャンしてバックスラッシュ文字があるかどうかを調べる次の例を考えてみます。

    while ( rgch[ i ] != '\\' )
        i++;
    

    これは、先行バイトではなく、末尾バイトにインデックスを作成する可能性があるため、character を指していない可能性があります。

  • 前の問題を解決するには、_mbclen 関数を使用します。

    while ( rgch[ i ] != '\\' )
        i += _mbclen ( rgch + i );
    

    これにより、先行バイト、つまり character が正しくインデックス付けされます。 _mbclen 関数は、文字のサイズ (1 または 2 バイト) を決定します。

関連項目

MBCS のプログラミングについて
文字列の最後の文字