转义字符中,我们最熟悉的可能就是换行符\n了。今天在看C程序设计语言,恰好看到附录A中的字符常量,有提到一些常用的转义字符。突然萌发了写一个小程序测试下各转义字符功能的想法。想成为一名合格的程序员,还是得多敲代码,将理论转化为实践。
程序源码:
#include <stdio.h>
typedef struct _escchar{
char c;
char *name;
}escchar;
escchar esc[]={ {'\n', "\\n"},
{'\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:\na%cb\n\n",esc[i].name, esc[i].c);
}
return 0;
}
运行结果如下:
rita@rita-desktop:~/work/c_program/exercise/ch2$ ./t
test \n:
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’ 时,能够听到滴答一声。
测试八进制'\123'时, 八进制123=十进制83,在ASCII表中对应为大写字母S。
测试十六进制\x23时,十六进制23=十进制35,在ASCII表中对应为字符 #。