
转义字符
一、什么是转义字符
转义字符(Escape character),所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C语言中定义了一些字母前加""来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符;在平常的代码编写中,printf函数经常会用到。
转义字符虽然由两个及两个以上的字符构成,但它表示的却是单个字符
简单转义字符(Simple escape sequence)
| 转义字符 | 含义 | 说明 |
|---|---|---|
| \0 | 空字符(NULL) | 在c语言中代表“字符串结束符” |
| \a | 警报符(alert) | 发出听觉或视觉上的警报 |
| \b | 退格符(backspace) | 将当前位置移到前一列 |
| \f | 换页符(form feed) | 换页,将当前位置移到下一页开头 |
| \n | 换行符(new line) | 换行,将当前位置移到下一行开头 |
| \r | 回车符(carriage return) | 将当前位置移到本行开头 |
| \t | 水平制表符(horizontal tab) | 将当前位置移动到下一个水平制表位置 |
| \v | 垂直制表符(vertical tab) | 将当前位置移动到下一个垂直制表位置 |
| \\ | 字符\ | |
| \? | 字符 ? | |
| \’ | 字符 ’ | |
| \" | 字符 " |
八进制转义字符(Simple escape sequence)
| 转义字符 | 含义 | 说明 |
|---|---|---|
| \ddd | ddd是3位八进制数 | 一般来说是在ASCII中的八进制数值为ddd的字符 |
十六进制转义字符(Simple escape sequence)
| 转义字符 | 含义 | 说明 |
|---|---|---|
| \xhh | hh是2位十六进制数 | 一般来说是在ASCII中的十六进制数值为hh的字符 |
二、简单转义字符
1、空字符
空字符\0
它的存在是为了告诉编译器’\0’是空字符,而不是字符0.
字符’0’对应的ASCII码为00110000,而’\0’对应的ASCII码为00000000;在C语言中通常用一个字符数组来存放字符串,’\0’ 是字符串的结束标志,任何字符串之后都会自动加上’\0’。如果字符串末尾少了‘\0’转义字符,则在输出时可能会出现乱码问题。
比如:
int main() {
char str1[] = {
"abc"};
char str2[] = {
"abc\0"};
return 0;
}
上述代码中str1与str2在打印输出时均为abc,
包括在使用库函数strlen计算时,str1与str2均为3,
原因是printf函数与strlen函数均认定’\0’ 是字符串的结束标志;
但在使用单引号进行赋值的时候,这两个函数可能会出现一些问题。
比如:
int main() {
char str1[] = {
'a','b','c'};
char str2[] = {
'a','b','c','\0'};
return 0;
}
在上述代码中如果我们使用printf函数与strlen函数进行打印输出和计算str1时,
该数据类型会丢失’\0’ ,此时打印的时候可能会出现乱码情况和计算出随机值的情况,
这时如果非要用单引号进行赋值的话,建议使用str2的写法。
在使用库函数sizeof进行字符串计算时,输出个数会比实际字符个数多1,
比如:
int main() {
char str[] = {

文章详细介绍了C语言中的转义字符,包括简单转义字符如空字符、警报符、退格符等,以及八进制和十六进制转义字符的使用方法。这些转义字符用于表示ASCII码中的特殊字符,对于字符串处理和输出控制至关重要。

994

被折叠的 条评论
为什么被折叠?



