C语言定义字符串“双引号”和字符“单引号”
2018-03-27 11:11
489 查看
最近写编译器的时候发现一个问题:
就是对于字符的匹配
例如对于双引号,如果是一个字符,那么'"'就可以了,但如果字符串"""就会报错。
所以,使用转义字符
例如\' ,\" ,等等
所有的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表示后面的字符是八进制数。
就是对于字符的匹配
例如对于双引号,如果是一个字符,那么'"'就可以了,但如果字符串"""就会报错。
所以,使用转义字符
例如\' ,\" ,等等
所有的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表示后面的字符是八进制数。
相关文章推荐
- C语言中,利用宏定义一个字符串和字符数组定义的字符串其末尾都会自动添加\0字符
- C语言中字符数组和字符串定义和初始化的问题
- C语言的字符数组(字符串)的定义与初始化
- C语言定义字符串和字符数组
- PHP json字符串对特殊字符处理(单引号,双引号)
- 【1-23】编写一个删除C语言程序中所有的注释语句。要正确处理带引号的字符串与字符常量。再c语言中,注释不允许嵌套。
- 编写一个删除C语言源程序中的所有注释语句,要正确处理带引号的字符串和字符常量。
- Java:布尔值,字符范围,字符串声明,换行操作,常量定义与c语言的不同
- 【c语言】为下面的函数原型编写函数定义,这个字符串参数必须包含一个或者多个数字,函数应该把这些数字字符转换为整数并返回这个整数。
- 【C语言】为下面的函数原型编写函数定义: int ascii_to_integer(char *str); 这个字符串参数必须包含一个或者多个数字,函数应该把这些数字字符转换为整数并返回这个整数。
- 【C语言】【笔试题】【面试题】实现一个函数,可以左旋字符串中的k个字符
- 【笔试题】C语言:在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”,则输出'b'。
- 转载:shell单引号字符' 双引号字符" 反斜杠字符/ 反引号字符
- 在字符串定义时,在字符串中间插入'\0'字符
- 表的查询(双引号用于表名列名处、单引号用于显示在列数据上的字符串常量上)
- C语言中的字符和字符串
- C语言-字符串的定义与初始化
- C Language Study - 字符数组及字符串定义方法
- C语言中,为什么字符串可以赋值给字符指针变量
- 【C语言】编写一个函数reverse_string(char * string)(递归实现),将参数字符串中的字符反向排列,不能使用C函数库中的字符串操作函数。