C语言——字符串+转义字符+注释

"本文介绍了C语言中字符串的概念,包括字符串字面量、存储方式及长度计算,强调了结束标志''的重要性。同时,讲解了转义字符的用途,如在打印路径时避免字符被转义,并通过示例展示了未正确使用转义字符可能导致的问题。最后,简述了注释的两种风格及其在代码组织中的作用。"
摘要由CSDN通过智能技术生成

(一)字符串

由双引号 引起来的一串字符称为字符串字面值 ,或者简称字符串。
比如     "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.注意
  • 代码复杂时注释进行解释说明
  • 平时尽量多写注释,但不要过度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值