目录
一、字符串
字符串就是一串字符——用双引号括起来的字符:
#include <stdio.h>
int main()
{
char arr[] = "Hello World";//"Hello World"就是字符串
printf("%s\n", arr);
return 0;
}
这里%s是打印字符串的意思,结果就为Hello World.
注:字符串的结束标志是一个转义字符\0,在用strlen计算字符串长度的时候\0不计入长度,只是结束标志。
重点:字符串的结尾都隐藏着一个\0的字符,这里我们来看看
这里我们通过监视可以看到字符串abcd后有个\0字符,这也证实了字符串结尾隐藏了\0 。
那么字符串和字符有什么区别呢,我们通过strlen函数来分析分析。
这里我们用strlen计算字符长度,计算的结果为整数,所以用%d。注:在用strlen函数时需要引用头文件#include <string.h>这里的道理是和引用printf一样的。 那么这里字符arr2为什么是16呢?我们通过调试看看
这里我们可以看到字符串arr1有\0为结束标志,而字符arr2没有\0做为结束标志 ,当字符arr2没有\0时它就会一直计算直到找到结束标志\0为止(即打印随机值),上面的arr2就是在第17个字符找到\0。这里需要知道的是不同编译器打印的随机值可能都不一样,博主用的是vs2019打印的随机值为16。
那么我们在字符arr2后加上\0又是怎么样的结果呢
当arr2计算到\0时就结束了不会再打印随机值了。
二、转义字符
这里我们先上图
下面我们来介绍一下上面的转义字符。
1、\"
当我们需要打印"(双引号)时,需要在其前面加上转义字符,表示一个普通的"
像这样,我们想打印俩个双引号,编译器报错了,原因是编译器把第一个双引号和第二个双引号为一语句,当 语句结束后需要加分号(;),第三个双引号和第四个双引号为一对。而"卖红薯"这个字符串就会呗省略报错。
当我们在 " 加入 \ 时就是为了把""变为普通的双引号 ,就可以打印这句话了。
\': ' 和 " 是一个道理的。
2、\'
和 \" 是一个道理的,当想要打印字符 ' 时需要在前面加 \ 当然在字符串中是不需要的。
3、\n
\n是换行的意思。
这里我们可以看到第一次打印没加 \n 没有换行,第二次打印加了,就换行了。
4、\\
两个 \\ ,前面的 \ 把后面的 \ 转化成普通的 \ ,使其失去转换的意思。
当在 \n 前加入 \ 时,把 \n 中的\变为普通的字符,所以不会发生换行。
5、\t
\t 是制表符的意思,相当于我们键盘上的TAB键,即缩进。
可以看到打印时进行了缩进。
6、\ddd
ddd表示1~3个八进制。当出现这样的时候先把八进制转换为十进制再打印相应的ASCII码上的数值,例:
这里打印的值为字符5,我们来分析一下:
一下是ASCII表,大家可以对应看看
7、\xdd
表示十六进制,\x表示是十六进制,dd则是1~2个十六进制,其道理和\ddd是一样的,我们这里再以65为例:
最后我们再来练习一下:
printf("%d",strlen("c abc\t\581")); 打印几个字符呢。
这里打印的是9,有些同学就会有疑惑了,不是打印7吗,为什么是9,这里我们需要注意的是,8不是八进制已经超过了八进制的最大值,不算入其中,所以后面的85算两个字符。
完结
好了我们这一章就到这里结束了,如果喜欢的话可以动动小手赞一下哟,我们下期再见^_^。