C语言转义字符
什么是转义字符
转义字符是一种特殊的字符序列,以反斜杠 “\” 开头,用于表示一些不能直接输入或具有特殊含义的字符。
转义字符的主要作用包括以下几个方面:
表示不可打印字符:例如换行符 “\n”、制表符 “\t” 等,这些字符在屏幕上不能直接显示,但可以通过转义字符来表示,,从而在程序 中控制输出格式。
表示特殊字符:有些字符在编程语言中有特殊用途,如单引号 “’”、双引号 “””、反斜杠 “\” 等。如果要在字符串中包含这些字符,就需要使用转义字符。例如,要表示字符串中的单引号,可以使用 “’”。
十六进制或八进制数值表示字符:可以使用 “\x” 后跟十六进制数或 “\” 后跟八进制数来表示特定的字符。
不同的编程语言中,转义字符的具体用法可能会有所不同,但基本的原理是相似的。在使用转义字符时,需要注意其正确的语法和用法,以确保程序能够正确地处理和输出所需的字符。
1. \0
空字符,常被系统自动加在每个字符串的尾部,作为字符串的结束标志,占用一个字节的内存空间。例如:
#include<stdio.h>
int main(){
printf("abcd\0efg");
return 0;
}
执行结果:abcd
衍生: \0”和“ ”(空格)有什么区别?
“\0” 是表示字符串结束的特殊字符,也被称为空字符或空终止符。它是 一个字符常量,ASCII码值为0 。在C语言中,字符串以’\0’作为结束标志。当你在一个字符数组(或字符串)中使用”\0”时,它表示字符串的结束,告诉编译器在这个字符后面没有更多的字符了,即使你可能后面定义了其他字符。例如上面:printf(“abcd\0efg”); 由于编译器会自动在结尾加上“\0”,因为遇到第一个“\0”后,就意味着遇到了一个结束标志,编译器就认为当前字符串结束了。
空格字符 ‘ ‘ 是 ASCII 码表中的一个字符,它表示一个可见的空白字符,ASCII值为32 。它和其他字符一样,可以在字符串中出现并占据一个字符位置。它被用于表示文本中的空白或间隔。例如:char str[10] = “Hello World”; 这里的 str 字符数组中实际存储的是 ‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘ ‘, ‘W’, ‘o’, ‘r’, ‘l’, ‘d’。可以看到,空格字符被视为普通的字符,没有特殊的作用。
另外,我在知乎里看见了一个错误的回答,他认为\0是NULL
实际上,\0和NULL是两个不同的概念。
在 C 语言等编程语言中,’\0’ 表示字符串的结束标志,它的 ASCII 值为 0。
而 NULL 在 C 语言中通常是一个宏定义或者表示空指针的值。
虽然 ‘\0’ 的值为 0 和 NULL 可能在某些情况下数值上相同,但它们的含义是不同的。’\0’ 主要用于标识字符串的结束,而 NULL 主要用于表示空指针。
所以 ‘\0’ 不是 NULL。
2. \a
响铃,输出\a时会有错误音效。
可以执行下列代码尝试听一下:
#include<stdio.h>
int main()
{
printf("\a");
return 0;
}
3. \b
退格(Backspace),虽然被称为Backspace,但功能与键盘上的向左删除不一定一样。
这个目前感觉没啥用,所以就不写了。
4. \t
水平制表符,即横向跳格,跳到下一制表位,可把每8个字符看作一个水平制表符,即\t前面字符还差几个满8个字符就空几个字符的位置
5. \n
回车换行(Enter)(十分简单常用就不细嗦了)
6. \v
垂直制表符,即竖向跳格
#include<stdio.h>
int main()
{
printf("1234\v5678");
return 0;
}
输出结果:
1234
$~~~~~$ 5678
7. \f
走纸符,换页,将当前位置光标移到下一页开头,在控制台中无法体现出作用,在打印走纸换页时可以使用,它能将后面的文体打印到一张新纸上。(不常用)
8. \r
回车,将光标位置移到首位
9. "
指双引号 “
10. \’
指单引号 ’
11. ?
指 ? ,防止在书写连续多个问号时被解析成三字母词
12. \
指 \
13. \ddd
1~3位八进制所代表的字符
例如:
#include<stdio.h>
int main()
{
printf("\101");
return 0;
}
输出结果:A
14. \xhh
hh指两位十六进制所代表的字符,使用前要加\x
例如:
#include<stdio.h>
int main()
{
printf("\x41");
return 0;
}
输出结果:A
- 标题: C语言转义字符
- 作者: 404joker404
- 创建于 : 2024-09-06 18:40:52
- 更新于 : 2024-09-16 18:46:17
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。