适合初学者的C语言转义字符讲解

 更新时间:2022年04月09日 12:30:52   作者:每天都要学一点哦  
转义字符是很多程序语言、数据格式和通信协议的形式文法的一部分。对于一个给定的字母表,一个转义字符的目的是开始一个字符序列,使得转义字符开头的该字符序列具有不同于该字符序列单独出现(没有转义字符开头)时的语义。因此转义字符开头的字符序列被叫做转义序列

什么是转义字符

今天我们来了解一下转义字符,转义字符顾名思义就是转变意思。

现在了解一下这些字符:

 转义字符      释义
    \?        在书写连续多个问号时使用,防止他们被解析成三字母词
    \'        用于表示字符常量'
    \“        用于表示一个字符串内部的双引号
    \\        用于表示一个反斜杠,防止它被解释为一个转义序列符。
    \a        警告字符,蜂鸣
    \b        退格符
    \f        进纸符
    \n        换行
    \r        回车
    \t        水平制表符
    \v        垂直制表符
    \ddd      ddd表示1~3个八进制的数字。 如: \130 X
    \xdd      dd表示2个十六进制数字。 如: \x30 0

为什么要使用这些转义字符

我们来说一下三字母词(过去有,现在使用的编译器不使用它了,所以就演示不了了),如果我们要打印一些字符,比如??),在三字母词中它对应的符号是]

     ??) --> ]
     ??( --> [

表示的是你本来想要打印的是??) 这三个符号,但是在编译器看来,它们是],所以它会给你打印出],而不是??)

那么你就想要打印出 ??) 怎么办呢?

我们只需要把??)前加一个 \

\?\?)
//转义字符  \?

它可以让 变成不是三字母词中的,让它老老实实的就是一个?,所以编译器就不会打印出 ]

三字母词实在是太古老了,但是这个语法不能消失,所以我们一直都在使用转义字符

这里总结一下我们打印所用到的格式

//%d - 打印整型
//%c - 打印字符
//%s - 打印字符串
//%f - 打印float类型的数据
//%lf - 打印double类型的数据
//%zu - 打印sizeof的返回值

如果我们要打印一个字符,如下:

#include<stdio.h>

int main()
{
printf("%c",''');   //我们来打印'
return 0;
}

运行结果:

出现了错误

请添加图片描述

那么出错的原因是什么?

我们来看这 ''' ,printf识别的时候,识别第一个 ' ,然后再识别一个 ' ,哎,到这里就结束了,就像识别这个字符一样'w',只要识别到一对儿',打印就会结束,但是后面还有第三个 ' 是多余的,就出错了

那么,我们使用转义字符 \' ,让'不再是一对儿'w' 里面的',就像上面的??)一样

验证一下:

#include<stdio.h>

int main()
{
printf("%c",'\'');   //我们来打印'
return 0;
}
//转义字符  \'

运行的结果:

请添加图片描述

再来继续了解转义字符

我们打印字符串有两个形式:

#include<stdio.h>

int main()
{
printf("%s\n","abcdef"); //形式一
printf("abcdef");        //形式二
return 0;
}

第二种形式不能直接像下面这样打印:

printf(2123456)//错误的

如果我们在abcdef中间加一个\0,但因为它代表的是换行,所以我们需要让它失效,让\0就是\0,没有其他含义,只需要这样就可以了:

#include<stdio.h>

int main()
{
printf("%s\n","abc\\0def"); //形式一
printf("abc\\0def");        //形式二
return 0;
}
//转义字符  \\

上面那个表里的转义字符都是这样子来使用的

来练习一个题

#include <stdio.h>
#include <string.h>
int main()
{
    printf("%d\n", strlen("c:\test\121"))
    return 0;
}

它的输出结果是什么?

答案解析:

strlen:获取字符串的有效长度,不包括’\0’

“c:\test\121”: 在该字符串中,\t是转移字符,水平制表,跳到下一个tab的位置;而\121表示一个字符,是讲121看做8进制数组,转换为10进制后的81,作业为ASCII码值的字符,即:字符’Q’ ,故上述字符串实际为:“c: esty”,只有7个有效字符

如果我们真的要打印c:\test\121,需要变成c:\\test\\121,这样就可以把c:\test\121给打印出来

关于转义字符,我们只需要记住特殊的就行,没有必要全部记忆,我们以后是会用到一些的

到此这篇关于适合初学者的C语言转义字符讲解的文章就介绍到这了,更多相关C语言 转义字符内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 利用C语言如何实现一些简单图形的打印

    利用C语言如何实现一些简单图形的打印

    这篇文章主要给大家介绍了关于利用C语言如何实现一些简单图形的打印的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Matlab绘制有趣的罗盘时钟的示例代码

    Matlab绘制有趣的罗盘时钟的示例代码

    这篇文章主要介绍了如何利用Matlab实现绘制有趣的罗盘时钟,文中的示例代码讲解详细,对我们学习Matlab有一定的帮助,需要的可以参考一下
    2023-01-01
  • c++中cin/cout与scanf/printf的区别比较

    c++中cin/cout与scanf/printf的区别比较

    这篇文章主要介绍了c++中cin/cout与scanf/printf的区别比较,需要的朋友可以参考下
    2017-06-06
  • C++特性之智能指针shared_ptr详解

    C++特性之智能指针shared_ptr详解

    shared_ptr是C++11提供的一种智能指针类,它足够智能,可以在任何地方都不使用时自动删除相关指针,从而帮助彻底消除内存泄漏和悬空指针的问题。本文主要是来和大家聊聊shared_ptr的使用,需要的可以参考一下
    2022-12-12
  • C 与 C++ 接口函数相互调用的实现

    C 与 C++ 接口函数相互调用的实现

    这篇文章主要介绍了C 与 C++ 接口函数相互调用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • c语言中比较特殊的输入函数举例详解

    c语言中比较特殊的输入函数举例详解

    C语言提供了丰富的标准库函数,用于处理各种输入输出操作,下面这篇文章主要介绍了c语言中比较特殊的输入函数的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-09-09
  • c++ 封装一个截图服务

    c++ 封装一个截图服务

    这篇文章主要介绍了c++ 封装一个截图服务的方法,帮助大家更好的理解和使用c++,感兴趣的朋友可以了解下
    2021-01-01
  • Matlab绘制花里胡哨的山脊图

    Matlab绘制花里胡哨的山脊图

    这篇文章主要介绍了如何利用Matlab实现绘制一些花里胡哨的山脊图,文中的示例代码讲解详细,对我们学习Matlab有一定的帮助,需要的可以参考一下
    2023-02-02
  • C语言详细分析讲解流程控制语句用法

    C语言详细分析讲解流程控制语句用法

    C语言语句的执行默认顺序执行(从上往下依次执行),编程语言一般除了默认的顺序执行以外,还提供分支执行和循环执行的语法,让我们一起来看看
    2022-05-05
  • 图文详解C语言位运算基础知识

    图文详解C语言位运算基础知识

    这篇文章主要以图文结合的方式为大家详细介绍了C语言位运算基础知识,感兴趣的小伙伴们可以参考一下
    2016-07-07

最新评论