C语言转义字符

404joker404 Lv3

什么是转义字符

转义字符是一种特殊的字符序列,以反斜杠 “\” 开头,用于表示一些不能直接输入或具有特殊含义的字符。

转义字符的主要作用包括以下几个方面:

  • 表示不可打印字符:例如换行符 “\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 进行许可。
评论