エスケープ文字をテストするウィジェット

1647 ワード

エスケープ文字の中で、私たちが最もよく知っているのは改行文字かもしれません.今日Cプログラミング言語を見ていると、付録Aの文字定数がよく見られ、よく使われるエスケープ文字について言及されています.小さなプログラムを書いて各エスケープ文字の機能をテストする考えが急に芽生えた.合格したプログラマーになるには、コードをもっと叩いて、理論を実践に変えなければなりません.
プログラムソース:
        
#include <stdio.h>


typedef struct _escchar{
        char c;
        char *name;
}escchar;


escchar esc[]={ {'
', "\
"}, {'\t', "\\t"}, {'\v', "\\v"}, {'\b', "\\b"}, {'\r', "\\r"}, {'\f', "\\f"}, {'\a', "\\a"}, {'\\', "\\\\"}, {'\?', "\\?"}, {'\'', "\\'"}, {'\"', "\\\""}, {'\123', "\\123"}, {'\x23', "\\x23"} }; int main() { int i; for ( i = 0; i < sizeof(esc)/sizeof(struct _escchar); i++){ printf("test %s:
a%cb

",esc[i].name, esc[i].c); } return 0; }

実行結果は次のとおりです.
rita@rita-desktop:~/work/c_program/exercise/ch2$ ./t test : a b test\t: a       b test\v: a  b test\b: b test\r: b test\f: a  b test\a: ab test\\: a\b test\?: a?b test\': a'b test\“: a"b test\123: aSb test\x23: a#b
実行結果の説明:
「a」をテストすると、ポタポタと聞こえます.
8進法'123'をテストすると、8進法123=10進法83となり、ASCIIテーブルでは大文字Sに対応します.
16進数x 23をテストすると、16進数23=10進数35となり、ASCIIテーブルでは文字#に対応します.