バイト インデックス
次のヒントを参考にしてください。
文字列をバイト単位でインデックスすると、ポインター操作時と同じような問題が生じます。文字列の中の円記号を探すスキャン例を考えてみます。
while ( rgch[ i ] != '\\' ) i++;
これは、先頭バイトではなく後続バイトのインデックスを作成する場合があります。そのため、character を指さない可能性があります。
_mbclen 関数を使って上の問題を解決します。
while ( rgch[ i ] != '\\' ) i += _mbclen ( rgch + i );
これは、先行バイトを正しくインデックスするので、実際の文字を正しくインデックスしています。_mbclen 関数は、文字のサイズ (1 バイトまたは 2 バイト) を決定します。