次の文字列があります。
index 0 1 2 3 4 5 6 7
std::string myString with the content of "\xff\xff\xff\x00\xff\x0d\x0a\xf5"
myString[3] を参照しているときに、期待される '\x00' 値が得られます。
しかし、myString[5] を参照すると、'\x0d' ではなく 2 つの値 "\x0d\x0a" が得られます。
さらに興味深いのは、'\xf5' である myString[6] 値です。今回は \x0d が存在せず、正しい位置が参照されたようです。
私の質問は次のとおりです: std:string オブジェクトの \x0d 文字の特別な点は何ですか? インデックス作成時にスキップされるのはなぜですか? 数え方はこんな感じです。
index 0 1 2 3 4 5 5 6
std::string myString = "\xff\xff\xff\x00\xff\x0d\x0a\xf5"
コメントとして、'\x0d' 文字は 13 番目の ASCII 文字「キャリッジ リターン」であり、'\x0a' は改行文字です。
更新: std::string が "\x0d\x0a" を単一の文字と見なし、文字列内の 1 つの位置のみを占める可能性はありますか? この '\x0d' は std::string に関して「謎」の文字ですか?