0

私はメッセージデコードの一般的な問題を解決するためにC++プログラムを書いています。問題の一部では、「\」を含む多数のランダムな文字を取得し、それらを1つずつキーにマップする必要があります。

私のプログラムはほとんどの場合正常に動作しますが、文字列から「\」などの文字を読み取ると、明らかに完全に異なる文字表現が得られます(たとえば、「\ 0」はヌル文字を生成するか、「\」は単にそれ自体をエスケープします。文字として扱う必要があります)。

含まれる文字キーを制御することは想定されていないため、バックスラッシュなどの特殊な制御文字を文字自体として扱う方法を必死に探しています。

私の質問は基本的にこれらです:

  • プログラムの範囲内ですべての特殊文字をオフにする方法はありますか?

  • 特殊文字の現在の有向グラフの定義を上書きして、それらを別のものとして定義する方法はありますか(非常にまれなキーを使用する有向グラフなど)?

  • 事前定義された定数の代わりに文字列の実際の文字を強制的に読み取ることができる、見逃したStringクラスのあいまいなメソッドはありますか?

私は何時間も解決策を探していましたが、私が見つけたすべての可能な修正は他の言語のものです。

どんな助けでも大歓迎です。

4

1 に答える 1

2

stdinやファイルのような文字列を読み取ると、"\0"2つの別々の文字として扱われます:'\\''0'。あなたがしなければならない追加の処理はありません。

エスケープ文字は、文字列/文字リテラルにのみ使用されます。つまり、ソースコードに何かをハードコーディングしたい場合です。

于 2012-06-01T22:18:41.280 に答える