C语言入门必看!(二)

前言

  呜呜呜这里先给各位小伙伴们道一个歉,真的不是UP主我有意鸽大家的,而是最近期末考试周,唉,来自学生党的哭泣

C语言入门必看!(二)_第1张图片

  好了言归正传,这一期,主要为大家讲一讲转义字符和字符串基础。P话不多说,坐稳扶好,我们开始了!

目录

字符串

1.概述

2.字符串的定义

3.重要的\0

转义字符

1.介绍

2.对某些字符的解释


字符串

1.概述

字符串字符串。顾名思义,就是由多个字符组成的一串字符。字符串通常用双引号引起来,而单个字符通常用单引号来引用。

‘c’//单个字符
"hello world!"//字符串

2.字符串的定义

以下列举2种字符串定义方式

char arr1[]="hello world";//初始化数组不需要定义数组长度
char arr2[12]="hello world";//要定义也没有问题
char arr3[]={'h','e','l','l','o'};//单个字符定义方式

3.重要的\0

\0,是一种转义字符,它通常告诉程序,我这段字符串已经到末尾了,它是一个字符串中必不可少的部分,接下来用两段代码(片段)突出它的重要性:

char arr1[]={'c','s','d','n'};
char arr2[]={'c','s','d','n','\0'};
printf("%s\n",arr1);
printf("%s\n",arr2);

输出结果如下:

 

为什么第一段代码是乱码呢?

就是因为\0,计算机在输出字符串的时候,由于第一个字符串中没有定义\0,程序找不到字符串的终点,所以将输出随机乱码,直到找到\0为止。

不过,万幸的是。。。

在你直接用字符串初始化数组的时候,会提前把\0转义字符给你输入进去

比如:char[10]="abcdef"

0 1 2 3 4 5 6 7 8 9
a b c d e f \0 \0 \0 \0

计算机自动会将没有字符的方格中填上\0

如果没有定义数组长度。。

char[]="abcdef"

0 1 2 3 4 5 6
a b c d e f \0

初始化的时候,计算机会自动加上一个\0哒,小伙伴们就不用自己加\0啦!

但是,在用strlen计算长度时,\0不会被算进字符长度里面。。。

char arr1[]={'c','s','d','n'};
char arr2[]={'c','s','d','n','\0'};
char arr3[10]="csdn";
printf("%d\n",strlen(arr1));//使用strlen时,需要引入string.h头文件
printf("%d\n",strlen(arr2));
printf("%d\n",strlen(arr3));

输出结果如下

C语言入门必看!(二)_第2张图片

 

第一行字符,同样,没有\0,计算机不知道在什么时候停止运算。。。

第二行第三行,证明了,\0不算入字符串长度里面。

转义字符

1.介绍

转义字符,顾名思义,就是转变意思。下面列出一些常见的转义字符

转义字符 含义
\' 表示'
\" 表示“
\\ 表示\
\a 警告字符
\b 退格字符
\f 进纸符
\n 换行符
\r 回车
\t 水平制表符
\v 垂直制表符
\ddd 八进制数字
\xdd 十六进制数字

2.对某些字符的解释

如果你要在计算机里面输入对话。。。

张三:"学好c语言,前途大大的好!"

萌新可能会这么输入:

printf("张三:"学好c语言,前途大大的好"!\n");

此时,代码成功地报错了

C语言入门必看!(二)_第3张图片

错误原因,printf中,对字符串的引用,已经使用了双引号,而你还要输出双引号,计算机就傻傻的分不清哪个是你的引用,哪个是你的期望输出了

为了解决这个问题,聪明的计算机科学家前辈们,已经为我们想好办法啦!

printf("张三:\"学好c语言,前途大大的好\"!\n");

这下,就能成功输出啦!

以此逻辑,代码中的\',\\同理。

up主的话:

很高兴大家能看到这里,也感谢小伙伴们对萌新up主的支持!up的文章中,若有什么错误与不足,敬请批评指正!临近期末季,可能会鸽很多期博客。小伙伴们手下留情哇TAT。。。

你可能感兴趣的:(笔记,c语言,字符串,printf)