(一)字符串

由双引号 引起来的一串字符称为字符串字面值 ,或者简称字符串。
比如     "hello! world\n"
注:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串
  • 如何在C语言中存一个字符串呢?
一般,我们可以把字符串放在字符数组中。可以写为  char  arr [ ]  这时候中括号内就可以存放字符串。(注:这里的arr是自己定义的字符数组名称,大家可以自行定义)
(打印字符串时我们用%s)
为了解释上面的内容,接下来演示一个例子。

猜猜看打印的结果是什么?

为什么调试结果是这样呢?

  • 首先,先解释一下arr 即数组的概念

当我们想要打印一些数字的的时候,比如从1-100,这时候我们不可能去创建int n=1;int n=2;等等这样100个变量,这时候为了方便,我们就引入了数组。

我们输入 int  arr[100]={1};

这时候就表明我们输入了100个数,从1到100.

现在,就来对打印结果做解释。

当我们用 hello 来初始化 arr1 的时候,这个字符串此时末尾隐藏了一个' \0 ' (  '\0' 也是一个字符,要用单引号引起来), 而' \0 '就是字符串的结束标志,因此打印出hello就结束了。

而 arr2 里输入的是一些字符,没有结束标志,数据输入到内存块中并打印出时,由于打印的是字符串,但是没有遇到结束标志\0,因此会继续打印字符'c'后面内存块里的内容,因此会随便打印,知道我在内存中的某个位置中遇到一个\0,此时就会结束并输出打印内容。

因此我们在 arr3 后面中主动加上'\0' ,就会结束打印,输出我们想要的结果。

  • 这个时候,我们来拓展一下:

让我们来打印一下我们输入的字符数组的长度

这里的strlen是用来求字符串长度的,打印前要加上#include<stdio.h>

意思是我们将求出的字符长度再次赋给 len 成为输入值,下面的同理

来让我们看看输出结果

3 表明 'abc' 的字符串长度为3    (abc\0)  \0是结束标志,碰到它时就结束,因此不计入长度。

5 表明之前输入的arr1里的字符长度为5,同理

但为什么arr2的字符长度是25呢?

arr2 里的字符是(abc) ,它并没有结束标志,因此会在内存块里继续读取,直到遇到一个\0

综上可知,\0对于字符串打印有多么重要,同时,strlen 打印字符串长度时,只打印\0之前的长度。


(二)转义字符

       转义字符是以‘\’为开头的字符,后面跟一个或几个字符,其意思是将反斜杠‘\’后面的字符转变成为另外的意义。

      常见的转义符及其ASC||码

 为什么需要转义字符呢?我们来举个例子。

假如我们要打印一个目录,名称为  :  c:\test\2021\test.c

怎么来写这个代码呢?试试看

是这样吗?

让我们来看一下调试结果:

嗯?结果好像和我们想象中的不太一样。为什么呢?

看看上面的代码,再对比常见的转义字符,发现了吗?

c:\test\2021\test.c  原来我们想要打印的东西被这样转义了,所以怎么打印出我们想要的结果呢?

当我们再加上一个\的时候,原来的\就不是转义字符了。来看看结果

成功打印出了我们想要的东西。

其他的转义字符按照它的解释都有使用情况。自己多看,最好记住一些常用的。这里就简单解释一下。

  • \n就是换行的意思,当\0在字符串里的时候,不需要用单引号引起来,但是其他条件下,需要单引号引起来。因为它本身也是一个字符,是字符就需要用单引号引起来
  • ??)   被认为是三字母词,有的编译器调试出来不相符。因此,输入代码时,敲成\?\?)
  • 当我们想要打印常量变量的时候,比如a,输入 printf("%c",'a');即可

如果想要打印单引号 输入%c,‘\’’    也是转义字符

  • 当打印时想要a\b\c的效果,需要进行转义,即编码时敲出a\\b\\c
  • \a  警告字符,蜂鸣
  • \t (水平制表符) 即tab 键,相当于一些空格键,且其空格的字符可以调节,具体在  工具-文本编译器-c/c++-制表符
  • \v  垂直制表符
  • \ddd  表示1-3的八进制数字    比如\130   代表 X 原因是将八进制的130转换成十进制 ,转换后是88,在ASC||编码中找到对应的符号就是X。
  • \xdd表示两个十六进制数字,同理

(三)注释

1.使用情况

  • 代码中有不需要的代码可以直接删除,也可以注释掉
  • 代码中有些代码比较难懂,可以加一下注释文字

2. 注释风格

注释有两种风格:
  • C语言风格的注释 /*xxxxxx*/
           (缺点:不能嵌套注释)
  • C++风格的注释 //xxxxxxxx
            (优点:可以注释一行也可以注释多行)
3.注意
  • 代码复杂时注释进行解释说明
  • 平时尽量多写注释,但不要过度

C语言——字符串+转义字符+注释相关推荐

  1. C语言学习笔记—P2(<C语言初阶>+<字符串+转义字符+注释>+图解+题例)

    目录 1.变量的使用 2. 变量的作用域和生命周期 3. 常量 4. 字符串 5. 注释 后记:●由于作者水平有限,文章难免存在谬误之处,敬请读者斧正,俚语成篇,恳望指教!               ...

  2. 初识C语言(1)(2)(3)(4) C语言入门 保姆级教程 变量 常量 字符串 转义字符 操作符 关键字 字符串 指针 函数 结构体 数组 选择语句 循环语句

    一.如何写C语言代码 1.编译器 2.创建项目 3.创建源文件 4.写代码 5.编译+链接+运行 项目名字不要汉语,不要特殊字符,不要加空格,项目路径一般为你想要的路径 C语言中,一般创建.c源文件, ...

  3. Golang 从菜鸟到大咖的必经之路_GO 语言的转义字符、注释、规范和代码风格要求

    目录 一.GO 语言转义字符 A.Golang 常用的转义字符(escape char): B.课程练习 二.Go 语言注释: A.注释(Comment): B.Go 语言中的注释类型: C.注释不会 ...

  4. C语言:字符串+转义字符+ASCLL码

    目录 字符串 转义字符 ASCLL码 字符串 字符串就是由双引号引起来的一串字符比如"abc" 字符串的结束标志是\0字符,如果没有字符串,那么编译器会将遇到的第一个\0作为结束标 ...

  5. c语言中转义字符efg,C语言试题.docx

    <C语言试题.docx>由会员分享,可在线阅读,更多相关<C语言试题.docx(56页珍藏版)>请在人人文库网上搜索. 1.第一章C语言概述 一.选择题: 1.一个C程序的执行 ...

  6. c 字符串 html转义字符串,字符串转义字符

    转义字符是编程语言中表示字符的一种特殊形式.字符串转义字符是用来表示字符集中定义的字符,或者是某一些特定的字符在编辑语言中被定义为特殊用途的字符.一般用于表示不能直接显示的字符,比如后退键.回车键等, ...

  7. java 获取注释_Java面试题Java语言有哪些注释的方式?

    点击上方"千锋Java学院",选择"置顶公众号" 每天一道面试模拟真题及解析 课前导读 ●回复"每日一练"获取以前的题目,持续更新! ●我希 ...

  8. C语言——字符串函数

    C语言--字符串函数 宗旨:技术的学习是有限的,分享的精神是无限的. 常用字符串操作函数的实现:注释部分你们注意一下,我没加/,加了/就看不到注释了. ************************ ...

  9. python语言的注释语句引导符不包括什么_以下选项中,哪一个是Python语言中代码注释使用的符号?________...

    [单选题]关于 Python 语句 P = –P,以下选项中描述正确的是________ [多选题]Python的数字类型包括( ) [多选题]Python中的注释符有哪几种?( ) [判断题]已知 ...

最新文章

  1. 听声辨位过时了!这个AI系统仅凭光回声就能得到3D图像
  2. 深入卷积神经网络背后的数学原理
  3. 专为设计师而写的GitHub快速入门教程
  4. PHPCMS v9 二次开发_验证码结合Session开发
  5. 不可思议黑科技,Xamarin移动开发新时代
  6. 为什么坚持一件事总是那么难,而且有时候总是三分钟热度?
  7. stimwoo大师解释MSDP与MBGP的关系
  8. cocos2d-x自制工具07:打印cocos2d-x的节点树
  9. asp.net oracle连接数据库,通过ASP.NET连接Oracle数据库实例教程
  10. AutoCad注册机使用方法
  11. php中session销毁,PHP中session变量的销毁
  12. Django深入模板引擎
  13. Windows系统遇到不能打开要写入的文件怎么办?----重启电脑即可
  14. 苹果cms影片集数不更新解决方法
  15. 逐条讲解python_名校教授推荐:Python458集大型视频,从正确的方向出发学习
  16. 遍历Lua全局环境变量
  17. PCB常见的几种钻孔
  18. 均值不等式链的几何证明
  19. 000898先生的留言
  20. Unit Test and Integration Test

热门文章

  1. linux部署的Oracle 11G数据库创建实例
  2. Java itext实现图片转pdf
  3. linux内存96后无法连接,linux服务器因磁盘空间满导致oracle数据库无法连接问题探索...
  4. 计算机卡顿cmd,看这里!知道君告诉你电脑卡顿的终极解决方案
  5. 触碰岁月——土楼潇洒穷游记
  6. 职业操盘手的止损法则
  7. php 浏览器唯一标识符,在PHP中获取唯一的Web浏览器ID
  8. 红外图像处理:去竖条
  9. 大话系列 | 逻辑回归的入门与优化
  10. 【云服务架构】什么是云原生应用?有哪些特点?来看看阿里云大学公开课给你答案