次の方法で共有


ポインターのインクリメントとデクリメント

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

  • 末尾バイトでなく先行バイトをポイントします。 通常は、トレイルバイトへのポインターを持つことは安全ではありません。 通常、文字列は逆方向でなく前方にスキャンする方が安全です。

  • 文字全体を移動するポインターインクリメント/デクリメント関数とマクロが用意されています。

    sz1++;
    

    を次に変更

    sz1 = _mbsinc( sz1 );
    

    _mbsinc および _mbsdec 関数は、文字のサイズに関係なく、character 単位で適切にインクリメントおよびデクリメントします。

  • デクリメントの場合、次に示すように、文字列の先頭へのポインターが必要です。

    sz2--;
    

    を次に変更

    sz2 = _mbsdec( sz2Head, sz2 );
    

    または、次のように、ヘッド ポインターが文字列内の有効な文字になる場合もあります。

    sz2Head < sz2
    

    既知の有効な先行バイトへのポインターを持っている必要があります。

  • _mbsdec への呼び出しを高速化するために、前の文字へのポインターを維持することもできます。

関連項目

MBCS のプログラミングについて
バイト インデックス