C语言转义字符详解

初识八进制转义字符,深知才疏学浅,故于此整理转义字符概论以备不时之需。参考资料甚多,以后文记之。

C语言转义字符概括:

ASCII字符集初识:

        了解转义字符之前需要先了解字符集,此处以ASCII字符集为学习对象:(通用性教广)

        ASCII字符集中有两类字符:控制字符,可显示字符

        一、控制字符:

        控制字符,顾名思义,其设计是用来实现控制功能的,一般不能打印,故又称为不显示字符:

        二、普通字符

        普通字符,一般也称为可显示字符,这也就是我们通常可以直接打印的字符:

        此外,ASCII还有扩展字符集(一般来说扩展字符集需要在特定的编译环境才能打印出来,当前只是以ASCII标准字符集作为引子引入转义字符,此处先按下不表)

转义字符:

        转义字符(Escape Character)是在编程中用于特殊功能的字符序列,它们允许程序员在字符串中插入特殊的控制字符,如控制台输出的响铃、换行、制表等。

转义字符包括:一般的转义字符,强制输出类转义字符,进制类转义字符

       一、一般的转义字符

        1.转义字符是用来输出控制字符的,这就是一般的转义字符,用于控制

        如:\n,\t,\0等等

        \0是空字符

     printf("1\n");
     printf("2\n");

        打印结果:

1
2

        二、强制输出类转义字符

        2.此外,C语言的标准输出中预设置了很多关键字符,这些关键字符在打印中有特殊作用,比如%d等,当我想输出这些特定符号本身的时候,也需要使用转义字符来输出,

        如:打印%d

    printf("%%d");

%d

                打印\

    printf("\\");

\

       三、进制类转义字符

        3.另外,常规的字符也可以通过转义其ASCII码的八进制值或者十六进制值来进行输出,这就是进制类转义字符:

        如:打印>

    printf("\076");//八进制>
    printf("\n");//换行
    printf("\76");//八进制>
    printf("\n");//换行
    printf("\x03E");//十六进制
    printf("\n");//换行
    printf("\x3E");//十六进制

>
>
>
>

        四、转义字符总结

转义字符释义补充
\?在书写连续多个问号时使用,防止他们被解析成三字母词

在某些编译器下 ,会将 “ ??) ” 解析成 三字母词 “ ] ” (未用特定编译器测试,待定)

目前测试的编译器可以直接用??打印

\`用于表示字符常量`
\"用于表示一个字符产内部的双引号
\\用于表示一个反斜杠,防止它被解释为一个转义序列符
\a警告字符,蜂鸣   在打印 \a 时会触发电脑上的蜂鸣器.
\b退格符退格(不换行)
\f进纸符打印机走纸换页(FF)(未经过测试,待定)
\n换行
\r回车\r可以将光标移动到当前行的开头,然后继续输出后续的内容,从而实现覆盖之前输出内容的效果。这在一些需要实时更新输出的情况下非常有用,比如进度条的展示或动态文本的更新
\t水平制表符
\v垂直制表符
\dddddd表示1~3个八进制的数字。如:\130X大于三位,或者遇到非八进制数字时则转换结束,后面的数字直接打印。
\xdddd表示2个十六进制数字。如:\x30 0十六进制超过3位会打印乱码,后面的数字不会直接打印
\0空字符(NULL)
printf("abcdefg\baa");
//打印结果:
abcdefaa
printf("abcdefg\raa");
//打印结果
aa

使用转义字符时需要注意以下问题:

  1. 转义字符中只能使用小写字母,
  2. 每个转义字符只能看作一个字符。
  3. \v垂直制表和\f换页符对屏幕没有任何影响,但会影响打印机执行响应操作。
  4. 在C程序中,使用不可打印字符时,通常用转义字符表示。
  5. 转义字符’\0’表示空字符NULL,它的值是0。而字符'0'的ASCII码值是48。因此,空字符’\0’不是字符0。另外,空字符不等于空格字符,空格字符的ASCII码值为32而不是0。编程序时,读者应当区别清楚。
  6. 如果反斜线之后的字符和它不构成转义字符,则’\’不起转义作用将被忽略。
    printf("a\qbc\nDEF\n");

    aqbc
    DEF

  7. 转义字符也可以出现在字符串中,但只作为一个字符看待。
  8. \n其实应该叫回车换行。换行只是换一行,不改变光标的横坐标;回车只是回到行首,不改变光标的纵坐标
  9. 八进制和十六进制转义字符的范围(待整理-偷个懒先
    1. 提示(十进制256=八进制400)

基础练习:

        包括转义字符的字符长度计算:参考C语言中的转义字符详解与实例解析-优快云博客文章浏览阅读5.6w次,点赞187次,收藏786次。转义字符_c语言转义字符 https://blog.youkuaiyun.com/qq_45559559/article/details/126132152

参考资料(reference):

C语言中的转义字符 - creepz - 博客园

C语言中转义字符的理解!!!_转义字符超过上限-优快云博客

C语言转义字符全解析-优快云博客

C语言转义字符详解-优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值