バイト インデックス
次のヒントを参考にしてください。
文字列に対してバイト単位のインデックスを使用すると、ポインター操作によって発生するものと同様の問題が発生します。 文字列をスキャンしてバックスラッシュ文字があるかどうかを調べる次の例を考えてみます。
while ( rgch[ i ] != '\\' ) i++;
これは、先行バイトではなく、末尾バイトにインデックスを作成する可能性があるため、
character
を指していない可能性があります。前の問題を解決するには、_mbclen 関数を使用します。
while ( rgch[ i ] != '\\' ) i += _mbclen ( rgch + i );
これにより、先行バイト、つまり
character
が正しくインデックス付けされます。_mbclen
関数は、文字のサイズ (1 または 2 バイト) を決定します。