非リテラル文字列に含まれるエスケープシーケンスを変換する必要があります(最初の文字は\
、その他はn
、r
、または8進コードなど)。そのエスケープシーケンス。charを関連するエスケープシーケンスに変換する方法は?
私の最初の考えは、マクロを使用すると可能です(#define to_escape(x) '\(x)'
のように動作しませんでした)が、実際にはそのような方法があるかどうか、さらに良い方法があるのだろうかと思います。
もちろん、私は\a
,\f
とsimilarsのようなエスケープのための簡単なswitch文を使うことができましたが、どのようにして8進数と16進数のエスケープを扱うことができますか?
「\ n」で表される「実際の文字」とは何ですか?あるいは、より一般的に言えば、具体的には、この変容の結果は何ですか? '' \ n' '**は**の文字であることを覚えておいてください。 –
文字列や文字のリテラル( '\ n'の改行、 '\ t'のタブなど)として手作業で入力したときと同じ文字にします。 – user6245072
もう一度: ''\ n''を見たときに何を得たいですか?それを "改行"と呼んでもそれは答えません。それは単に移植可能な文字を移植不可能な名前に置き換えます。 –