最近写编译器的时候发现一个问题:
就是对于字符的匹配
例如对于双引号,如果是一个字符,那么'"'就可以了,但如果字符串"""就会报错。
所以,使用转义字符
例如\' ,\" ,等等
所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。
//#define D_YINHAO 55
else if(ch == '"')
{
ret->code = D_YINHAO;
ret->word_meaning = "\"";
char str[100];
sprintf(str, "%d---%s\n", ret->code,ret->word_meaning);
file_write(str);
}
//#define D_YINHAO 55 //"
//#define S_YINHAO 56 //'
else if(ch == '\'')
{
ret->code = D_YINHAO;
ret->word_meaning = "\'";
char str[100];
sprintf(str, "%d---%s\n", ret->code,ret->word_meaning);
file_write(str);
}
其中:\x表示后面的字符是十六进制数,\0表示后面的字符是八进制数。