【C语言】字符串+注释

这篇具有很好参考价值的文章主要介绍了【C语言】字符串+注释。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

王国探险记系列

文章目录(3)


前言

一,什么是字符串呢?

1,那C语言是怎么表示字符串的呢?

"hello world.\n"

2,证明字符串的结束标志是一个 \0 的转义字符

3,证明字符串的结束标志\0 的重要性

3.1我们在arr2的字符串数组后面加一个\0然后看结果

四,我们还可以通过计算字符串长度来证明字符串后面有一个隐藏的\0

提前知道:

五,注释

总结


前言

C语言王国探险记,是我们学习C语言,从小白成长为大佬的的探险历程,我们在这章将探险字符串和注释这个知识关卡


一,有字符串类型吗?

c语言中字符类型,但是有字符串类型吗?

char

short

int 

long 

long long 

folat

double

我们在怎么类型里面有没有见到一个叫字符串类型的呢?没有

C语言有字符类型,但是没有字符串类型。

1,那C语言是怎么表示字符串的呢?

"hello world.\n"

这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字符 串。

注:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串 内容。

2,证明字符串的结束标志是一个 \0 的转义字符

简单写一个代码让大家跟着我们看一下

我们主函数写出来就什么都不写

我们将在代码加注释和结果运行图中进行知识点的讲解:


//如何证明\0是字符串的结束标志呢
int main()
{

	return 0;
}
//调试技巧:先按F10,开始调试之后,出现箭头开始调试了
//在菜单栏里点调试,然后是监视窗口的,分为1,2,3,4
//点那个监视窗口都可以
//这里给上一个双引号然后加上abcdef。好像平平无奇
//然后我们点开可以看到abcdefg后面跟了一个\0
//实际上当你看到这个字符串的时候可以看到字符串有个\0吗,看不到
//只有当你真正的去观察会发现,g后面还放了一个\0的字符
//其实在字符串的末尾是隐藏了一个\0的字符的,当你写出这样一个字符串的时候悄悄的隐藏了一个\0
//这个\0叫做字符串的结束标准
//一个字符串当真正往后走,遇到\0的时候,它才认为这个字符串结束了
//\0是字符串的结束标志

注意:

我们的main()函数里面是没有任何的值的,我们的第三张图里面的“abcdef"字符串是我们在监控窗口里面添加的

看图:我们可以看到一套流程后,我们可以看到,在字符串的最后有一个隐藏的\0。

【C语言】字符串+注释,c语言,c语言,开发语言

【C语言】字符串+注释,c语言,c语言,开发语言

【C语言】字符串+注释,c语言,c语言,开发语言

3,证明字符串的结束标志\0 的重要性

 我们现在再举一个有打印字符数组来证明\0对字符串有很重要的意义的代码实例:

//字符串是可以存放在字符数组中的
//%s是打印字符串
int main()
{
	char arr1[] = "abc";
	//我们这个地方看到的是这样一个现象,隐藏了一个\0
	char arr2[] = { 'a' , 'b' , 'c'};//我们说C语言里面两个单引号引起来的是一个字符,
    //中间是一个逗号
	//我们可以看到后面没有\0
	//现在开始打印字符串
	//pfintf()怎么来打印字符串呢很简单
	//一个"%s"就可以打印
	printf("%s\n", arr1);//就是把arr1这个里面的字符串数组打印出来,打印完换个行
	printf("%s\n", arr2);//就是把arr2这个里面的字符串数组打印出来,打印完换个行
	//这就是我们现在的打印两个字符串
	//看一下我们的效果
	return 0;
}
//调试调监控,发现确实后面隐藏了\0
//证明了字符串里面放了一个隐藏的\0
//这个\0是字符串的结束标志,她对于字符串来说非常重要

我们通过代码+注释和结果运行图来理解:

【C语言】字符串+注释,c语言,c语言,开发语言

【C语言】字符串+注释,c语言,c语言,开发语言

结果分析: 

我们可以看到arr1有\0作为结束标志,arr2数组是没有\0作为结束标志,我们在通过运行结果图可以看到

arr1打印完abc就停下来了

arr2打印完abc就是烫烫烫烫.....

在里面最大的问题就在于\0,我们前面说了\0是字符串的结束标志

我们还可以通过字符数组在内存中的表示形式来理解\0的重要性:

arr1的内存布局

a b c \0

因为有\0所以就只打印到c就停止了,就证明了\0的重要性

arr2的内存布局

a b c 

后面是啥不知道,我只知道我在数组里面放了abc,后面是不是\0不知道所以当%s打印arr2的时候,字符串打印一定是遇到\0停止,当c打印完之后要不要打印呢,取决于后面有没有\0,我们这个结果可见没有遇到\0,直达在某一个一个地方遇到\0了,恰好又是他随机碰上的一个\0才停止打印。这就证明了\0的重要性

3.1我们在arr2的字符串数组后面加一个\0然后看结果

我们通过代码+注释和结果运行图来理解:

int main()
{
	char arr1[] = "abc";
	//我们这个地方看到的是这样一个现象,隐藏了一个\0
	char arr2[] = { 'a' , 'b' , 'c' ,'\0'};
	//如果这里主动放一个\0呢,我们打印看一下
	// 这个时候就是两个abc了
	//我们说C语言里面两个单引号引起来的是一个字符,中间是一个逗号
	//我们可以看到后面没有\0
	//现在开始打印字符串
	//pfintf()怎么来打印字符串呢很简单
	//一个"%s"就可以打印
	printf("%s\n", arr1);//就是把arr1这个里面的字符串数组打印出来,打印完换个行
	printf("%s\n", arr2);//就是把arr2这个里面的字符串数组打印出来,打印完换个行
	//这就是我们现在的打印两个字符串
	//看一下我们的效果
	return 0;
}

【C语言】字符串+注释,c语言,c语言,开发语言

 我们可以看到运行结果图,在arr2后加一个\0就可以被编译器正常的识别结束

再一次证明了\0的重要性

四,我们还可以通过计算字符串长度来证明字符串后面有一个隐藏的\0

提前知道:

我们计算字符串长度用到一个函数叫strlen()
str就是字符串的意思,len就是计算的意思
strlen()是一个库函数 -- 求字符串长度的,统计的是字符串中\0之前的字符个数
#include <string.h>//是strlen()这个函数所需要的头文件,string就是字符串的意思,
注意你使用字符串系列的的函数都需要引用这个头文件

我们通过代码+注释和结果运行图来理解:

//我们计算字符串长度用到一个函数叫strlen()
//str就是字符串的意思,len就是计算的意思
//strlen()是一个库函数 -- 求字符串长度的,统计的是字符串中\0之前的字符个数
//#include <string.h>//是strlen()这个函数所需要的头文件,string就是字符串的意思,
//注意你使用字符串系列的的函数都需要引用这个头文件
int main()
{
	char arr1[] = "abc";//我们统计arr1的时候我们统计到c就停止了,
	//因为遇到了\0,所以统计出来是3
	char arr2[] = { 'a','b','c' };
	printf("%d\n",strlen(arr1));//长度肯定是整数嘛,我们用%d来打印
	//strlen在数arr1的时候应该是3
	printf("%d\n", strlen(arr2));//求长度的时候也是遇到\0才停止,所以是一个随机的值
	//在计算字符串长度的时候\0是结束标志,不算作字符串内容。是统计个数的时候不统计在内的
	//但是对于arr2来说统计玩c,后面还要统计多少个字符才能遇到\0都是未可知的
	//所以strlen统计的arr2是多少是不知道的,就可能是一个随机值
	return 0;
}

【C语言】字符串+注释,c语言,c语言,开发语言

 解释:

arr1和arr2的区别呢?
他们里面就差一个\0
像arr2这种没有\0的字符串是不能使用%s来打印的
但是你想要使用%c一个一个字符的去打印也是没有问题的
上面这些就是为了告诉我们字符串是上面,已经字符串中的\0是干什么的,
她是作为字符串的结束标志而存在的
这个结束标志是在统计长度的时候,和打印的时候遇到\0就停止了

五,注释

1,代码中不需要的代码可以直接删除,也可以注释掉
 我们就会将写注释方便我们去理解,当我们遇到不想删除的代码我们就可以注释掉,
 让其不在发挥作用
2.代码中有一些代码比较难懂,可以加一下注释文字
我们在上面写的代码当中,为了让我们更好的去理解代码,
写注释就是一个解释这个东西到底是啥,有啥用,帮助我们理解代码,帮助别人阅读代码的

int main()
{	
	/*这种注释方式是C语言自带的,可以一次注释多行,
	但是这种注释方式是不能嵌套注释的,如果它里面已经有了/**/就会不能完全注释掉*/
	//这是c++的注释方式
	int a = 10;//创建一个整型变量,并赋值为10
	return 0;
}

c语言风格的注释/*xxxxxxx*/

        缺陷:不能嵌套注释
c++语言风格的注释//xxxxxxxx
        可以注释一行也可以注释多行,能嵌套注释


总结

以上就是今天要讲的内容,本文仅仅简单介绍了字符串的基本概念及和注释,可以让你在c语言王国的探险更加有趣,充实。文章来源地址https://www.toymoban.com/news/detail-620147.html

到了这里,关于【C语言】字符串+注释的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Day28】力扣算法(超详细思路+注释) [1790. 仅执行一次字符串交换能否使两个字符串相等 ] [328. 奇偶链表 ][148. 排序链表]

    原题链接:1790. 仅执行一次字符串交换能否使两个字符串相等 题目描述 : 给你长度相等的两个字符串 s1 和 s2 。一次 字符串交换操作的步骤如下:选出某个字符串中的两个下标(不必不同),并交换这两个下标所对应的字符。 如果对 其中一个字符串 执行 最多一次字符串交

    2024年01月22日
    浏览(44)
  • Java中字符串拼写常用方法和高级技巧,举例并说明,加上注释和实际运行效果说明

    Java中字符串拼写常用方法和高级技巧,举例并说明,加上注释和实际运行效果说明 目录 1、使用\\\"+\\\"操作符拼接字符串 2、使用StringBuilder类拼接字符串 3、使用String.format()方法格式化字符串 4、使用String.concat()方法拼接字符串 5、使用String.join()方法拼接字符串 6、使用StringBuffe

    2024年02月11日
    浏览(42)
  • 字符串变换最小字符串(C语言)

    给定一个字符串s,最多只能进行一次变换,返回变换后能得到的最小字符串(按照字典序进行比较)。 变换规则:交换字符串中任意两个不同位置的字符。 一串小写字母组成的字符串s 按照要求进行变换得到的最小字符串。 输入 abcdef 输出 abcdef 说明 abcdef已经是最小字符串

    2024年02月22日
    浏览(37)
  • c语言字符串转数字,数字转字符串

    目录 一、字符串转数字 1. 标准库转换 atoi(),字符串转换成整型数 atol(),字符串转换成长整型数 atof()字符串转换为浮点值 atoll(),字符串转换成长长整型数 strtod(),字符串转换为浮点数  strtol(),将字符串换成长整型数 二、数字转字符串 1. 通过C语言标准库函数 itoa(),整数转换成字符

    2024年02月02日
    浏览(40)
  • C语言:字符函数和字符串函数(一篇拿捏字符串函数!)

    目录 求字符串长度: 1. strlen(字符串长度) 长度不受限制函数: 2. strcpy(字符串拷贝) 3. strcat(字符串追加) 4. strcmp(字符串比较) 长度受限制函数: 5. strncpy(字符串拷贝) 6. strncat(字符串追加) 7. strncmp(字符串比较) 字符串查找: 8. strstr(查找字符串子串) 9. strtok(字符串分割) 错误信

    2024年02月10日
    浏览(105)
  • 【c语言】字符串的基本概念 | 字符串存储原理

    创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡𖥦)!! 主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步! 给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ c语言系列专栏: c语言之路重点知识整合 字符char知识点

    2024年02月03日
    浏览(48)
  • C语言——字符串、打印字符串的三种方式

    字符串( character string )是一个或多个字符的序列,空字符( null character )\\0 标记字符串的结束 字符串以数组( array )存储,也就是以空字符(\\0)结尾的 char 类型数组 用 %s 转换说明来处理字符串的输入和输出 输入和输出必须给出字符串的首地址,可以 直接是字符串常量

    2024年02月11日
    浏览(53)
  • 【C语言小技巧】16进制字符串与字符串互转

    平时我们在写功能需求时,难免不会遇到需要将 16 进制字符串转换成字符串,或者字符串转16进制字符串的需求,所以就有了这篇文章。 在进入主题之前,我们先来回顾一下字符和 16 进制的关系。我们知道正常的 16 进制数值(像 0x32 )和 ASIIC 码( 0x32 对应字符 2 )之间是互

    2024年02月02日
    浏览(59)
  • 深入解析C语言中的字符串和字符串处理函数

    标题:详解C语言中的字符串和字符串处理函数 目录: 1.引言 2.什么是C语言中的字符串 3.字符串的表示方式 4.C语言中的字符串处理函数 5.例子:使用字符串处理函数的示例代码 6.总结 在C语言中,字符串是一种常见的数据类型,用于存储一串字符。本篇博客将详细介绍C语言中

    2024年02月15日
    浏览(52)
  • C语言字符串初始化详解:用常量字符串进行字符数组初始化

    简介 字符串初始化 用常量字符串 初始化过程 示范代码 结论 在C语言中,字符串被定义为字符数组。字符串的初始化是指将一个常量字符串复制到字符数组中。本文将详细介绍字符串的初始化方法,并提供相应的示范代码。 在C语言中,有几种常用的方法可以用常量字符串来

    2024年02月15日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包