当前位置: 首页 > news >正文

网站制作的/什么是口碑营销

网站制作的,什么是口碑营销,有什么网站可以做婚庆视频素材,昆明做网站seo一.字符串 这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字 符串,例如“hello.\n”注:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候…

 

一.字符串

这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字 符串,例如“hello.\n”
注:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串内容。

字符串的打印输出

由于在c语言中是没有字符串这种数据类型的,所以我们可以用指针类型或者数组类型来对字符串进行存储输出,下面来看一段代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>/*输出一个字符串,因为c语言中是没有字符串类型的,所以可以用指针类型或者数组类型对字符
串进行输出*/int main(){//int main是c99标准char* p = "abcde";/*char*为指针类型,p为指针abcde为字符串,C语言中是没有特定的字符串类型的*/printf("%s\n", p);/*打印这个字符串,若要打印字符串则参数为%s,输出结果为abcde*/char str[] = { "bit" };//用双引号括起来表示字符串,其中默认是有一个结束标志\0char str2[] = { 'b','i','t' };char str3[] = { 'b', 'i', 't' ,'\0'};char str4[7] = { 'b', 'i', 't' ,'t'};/*此时如果给定了数组的大小,以此数组为例,它是有七个格子,前四个放入了bitt,则后面三个此时默认放的都是\0*/printf("%s\n", str);/*输出结果为bit,原因是字符串的结束标志为\0的转义字符但是平时是不会写出来的,是系统默认的,所以当字符串“bit”存到char类型的数组时会自动在末尾存入\0*/printf("%s\n", str2);/*输出结果为bit烫烫烫烫蘠it,原因是此时的'b','i','t'已经不再是字符串了,则不再默认有\0符号,所以在输出字符串的时候会bit后面的是随机输出的,即找到\0结束标志才会结束*/printf("%s\n", str3);/*输出结果为bit,此时有结束标志\0,*/printf("%s\n", str4);/*输出结果为bitt*/return 0;
}

如图我们可以看到我们分别用指针类型和数组类型对字符串进行了存储。

对于指针存储的字符串的输出结果如下:

对于数组存储的字符串的输出结果如下:

在这里可能大家对此输出结果可能会有疑问,我们来对每句输出语句进行解释:

char str[] = { "bit" };
printf("%s\n", str);

在这里我们可以看到此数组的输出结果为bit,原因是首先用双引号括起来表示字符串,其中默认是有一个结束标志\0,字符串的结束标志为\0的转义字符平时是不会写出来的,是系统默认的,所以当字符串“bit”存到char类型的数组时会自动在末尾存入\0。

char str2[] = { 'b','i','t' };
printf("%s\n", str2);

在这里我们可以看到此数组的输出结果为bit烫烫烫烫烫烫烫烫烫烫烫烫烫烫蘠it,原因是此时的'b','i','t'已经不再是字符串了,则不再默认有\0符号,所以 在输出字符串的时候bit后面的是随机输出的,即找到\0结束标志才会结束。

char str3[] = { 'b', 'i', 't' ,'\0'};
printf("%s\n", str3);

在这里我们可以看到此数组的输出结果为bit,原因是虽然此处'b','i','t'已经不再是字符串了,但是多了一个结束标志\0,在输出字符串时找到结束标志\0时便会结束,则输出结果为bit

char str4[7] = { 'b', 'i', 't' ,'t'};
printf("%s\n", str4);

 在这里我们可以看到此数组的输出结果为bitt,原因是虽然'b','i','t''t'已经不再是字符串了,但是此处我们可以看到确定了数组的大小为7,那么数组的前四个格子放满后还空了三个格子,此时我们经过调试发现为三个\0结束符,调试的结果如下:

 

字符串的长度

我们在求字符串长度时一般会用到strlen()方法 ,同时也会有sizeof()方法与之作为类比,下面我们来对两种方法通过代码的形式来进行一个对比,首先来看一段代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>//strlen库函数包含在<string.h>的头文件当中
//计算字符串的长度
int main(){char* p = "abc";int a = strlen(p);/*strlen库函数为求字符串的长度,但不包含\0结束符,即遇见\0结束符便会停止,所以字符串“abc”其长度为3*/printf("字符串abc长度为%d\n", a);//输出a的值为3int c = sizeof(p);printf("字符串abc长度为%d\n", c);//输出c的值为4,sizeof获得的是该指针所占的地址空间,32位操作系统对应4字节,64位操作系统对应8字节char* d = "abc\0des";int b = strlen(d);printf("字符串abc\\0des长度为%d\n", b);/*字符串abc\0des的长度为3原因是strlen函数再求字符串长度的时候遇到\0会停止,所以上述字符串在遇到\0时停止后长度只求到了字母c,故长度为3*/int l = sizeof(d);printf("字符串abc\\0des长度为%d\n", l);//sizeof获得的是该指针所占的地址空间,32位操作系统对应4字节,64位操作系统对应8字节,所以此结果为4char str2[] = "asdfgh";//int e = strlen(str2);printf("字符串asdfgh长度为%d\n", e);//输出e的值为6int f = sizeof(str2);printf("字符串asdfgh长度为%d\n", f);//输出f的值为7,因为sizeof获得该数组所占内存空间大小,包括字符串结尾的'\0',所以结果为7char str3[8] = {  'a', 's', 'd' };int g = strlen(str3);printf("其长度为%d\n", g);//输出g的值为3int h = sizeof(str3);printf("其长度为%d\n", h);//输出h的值为8,因为sizeof获得该数组所占内存空间大小,但是大小确定为8,故sizeof得到的结果是8char str4[] = "as\0df";int i= strlen(str4);printf("字符串as\0df长度为%d\n", i);//输出i的值为2,因为strlen函数在求字符串长度时遇见\0结束符便会停止int o = sizeof(str4);printf("字符串as\0df长度为%d\n", o);//输出o的值为6,因为sizeof获得该数组所占内存空间大小,包括字符串结尾的'\0',所以结果为6printf("%d\n", strlen("c:\test\328\test.c")); /*\ddd为格式ddd表示1~3个八进制的数字,所以\328中末位数为8是不能被进行转义的,原因是八进制数字最高只能取到7,所以\32被解析成一个转义字符,故8不能被转义,所以其长度为14*/return 0;
}

下面来对每个模块代码进行分析:

char* p = "abc";int a = strlen(p);/*strlen库函数为求字符串的长度,但不包含\0结束符,即遇见\0结束符便会停止,所以字符串“abc”其长度为3*/printf("字符串abc长度为%d\n", a);//输出a的值为3int c = sizeof(p);printf("字符串abc长度为%d\n", c);//输出c的值为4,sizeof获得的是该指针所占的地址空间,32位操作系统对应4字节,64位操作系统对应8字节

根据上述代码,此时我们用指针类型来存储字符串,首先用strlen方法对其长度进行输出,因为strlen方法在计算长度时是不包含结束符\0,所以遇见\0时便会停止,则其长度为3,而当我们用sizeof方法针对指针类型时,此时最后的输出结果都为4,原因是若在32位操作系统中,首先指针变量存放的是地址, 而地址在内存中都是十六进制的数字,为int类型,所以是四个字节,但是若在64位操作系统中,此时指针变量的大小为八个字节

输出结果为:

在32位操作系统中

在64位操作系统中

 


char* d = "abc\0des";int b = strlen(d);printf("字符串abc\\0des长度为%d\n", b);/*字符串abc\0des的长度为3原因是strlen函数再求字符串长度的时候遇到\0会停止,所以上述字符串在遇到\0时停止后长度只求到了字母c,故长度为3*/int l = sizeof(d);printf("字符串abc\\0des长度为%d\n", l);//sizeof获得的是该指针所占的地址空间,32位操作系统对应4字节,64位操作系统对应8字节,所以此结果为4

  根据上述代码,此时我们用指针类型来存储字符串,首先用strlen方法对其长度进行输出,因为strlen方法在计算长度时是不包含结束符\0,所以遇见\0时便会停止,则其长度为3,而当我们用sizeof方法针对指针类型时,此时最后的输出结果都为4,原因是若在32位操作系统中,首先指针变量存放的是地址, 而地址在内存中都是十六进制的数字,为int类型,所以是四个字节,但是若在64位操作系统中,此时指针变量的大小为八个字节

输出结果为:

 在32位操作系统中

在64位操作系统中


char str2[] = "asdfgh";//int e = strlen(str2);printf("字符串asdfgh长度为%d\n", e);//输出e的值为6int f = sizeof(str2);printf("字符串asdfgh长度为%d\n", f);//输出f的值为7,因为sizeof获得该数组所占内存空间大小,包括字符串结尾的'\0',所以结果为7

  根据上述代码,此时我们用数组类型来存储字符串,首先用strlen方法对其长度进行输出,因为strlen方法在计算长度时是不包含结束符\0,所以遇见\0时便会停止,则其长度为6,而当我们用sizeof方法针对数组类型时,此时sizeof获得是该数组所占的内存空间大小,包括字符串结尾的'\0',一共有七个字符,每个字符占一个字节,所以结果为7.

输出结果为: 

 


char str3[8] = {  'a', 's', 'd' };int g = strlen(str3);printf("其长度为%d\n", g);//输出g的值为3int h = sizeof(str3);printf("其长度为%d\n", h);//输出h的值为8,因为sizeof获得该数组所占内存空间大小,但是大小确定为8,故sizeof得到的结果是8

 根据上述代码,此时我们用数组类型来存储字符串,首先用strlen方法对其长度进行输出,因为strlen方法在计算长度时是不包含结束符\0,所以遇见\0时便会停止,而数组的前三个格子占满后,后五个全部为\0,则其长度为3.

而当我们用sizeof方法针对数组类型时,此时sizeof获得是该数组所占的内存空间大小,此数组中一共有八个字符,而一个字符占1个字节,所以一共是八个字节.

 输出结果为:


	char str4[] = "as\0df";int i= strlen(str4);printf("字符串as\0df长度为%d\n", i);//输出i的值为2,因为strlen函数在求字符串长度时遇见\0结束符便会停止int o = sizeof(str4);printf("字符串as\0df长度为%d\n", o);//输出o的值为6,因为sizeof获得该数组所占内存空间大小,包括字符串结尾的'\0',所以结果为6

 根据上述代码,此时我们用数组类型来存储字符串,首先用strlen方法对其长度进行输出,因为strlen方法在计算长度时是不包含结束符\0,所以遇见\0时便会停止,则其长度为2.

 而当我们用sizeof方法针对数组类型时,此时sizeof获得是该数组所占的内存空间大小,包括字符串结尾的'\0',而char为1个字节,一共有6个字符,则字节大小为6.

其输出结果为:

 


二.转义字符

转义字符顾名思义就是转变意思:下面来看一些转义字符

以上就是一些常见的转义字符,下面我们来看一段代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>//strlen库函数包含在<string.h>的头文件当中//转义字符的使用
int main(){//问题一:如何在屏幕打印输出“helloworld”printf("%s\n", "\"helloworld\"");//输出结果为“helloworld”//问题二:如何在屏幕打印输出单引号 '//问题三:如何在屏幕打印输出双引号''printf("%s\n", "\'");printf("%s\n", "\"");return 0;
}

当我们想输出某个符号时,就在它的前面加上\即可,例如图中的三个问题,大家可以进行参考,附上面程序的运行结果。


三.注释

在c语言中有行注释与块注释两种

行注释:用//xxxx来表示

块注释:用/*xxxxx*/来表示

注意:在块注释中可以嵌套行注释,但不能嵌套块注释

快捷键:1.ctrl+k+c  注释

              2.ctrl+k+u  取消注释

 

 

 

 

 

 

 

http://www.lbrq.cn/news/1454527.html

相关文章:

  • 免费网站下载app软件/推广网站哪个好
  • 可以做微信游戏的网站有哪些/网络推广工作是做什么的
  • wordpress多站点功能/网课培训机构排名前十
  • 武汉专业网站做网页/推广自己的网站
  • 大连建设工程网站/清远新闻最新
  • 学校门户网站建设方案/百度网盘资源共享
  • 网站切换中英文/公司建网站多少钱
  • 如何做正规的采集网站/百度链接收录
  • 镇江关键词优化如何/盛大游戏优化大师
  • 常州市天宁区建设局网站/网站关键词优化排名外包
  • 独立ip做担保网站会被360拦截吗/百度推广有哪些推广方式
  • 网站底部代码大全/放单平台大全app
  • 建筑工程联系方式公开网/seo基础优化包括哪些内容
  • 做网站开发需要的笔记本配置/一个平台怎么推广
  • 英语不好的做网站运营可以吗/江苏seo技术教程
  • 做网站开发的提成多少钱/今日网站收录查询
  • 跨境电商seo/百度搜索优化软件
  • html5 wap网站模板/sem代运营
  • 做淘宝图片的网站/凤山网站seo
  • 张家港网站建设做网站/百度图片搜索入口
  • 自己建的网站可以用笔记本做服务器吗/上海网站建设制作
  • 怎么用ps做京东网站模板/杭州seo 云优化科技
  • 济南商城网站制作/石家庄百度快速排名优化
  • 如何在自己的服务器上做网站/在线查询网站收录
  • 贵州省住房和城乡建设厅网/搜索引擎优化简称seo
  • 单位加强网站建设/2345网址导航大全
  • 网站会员注册系统怎么做视频/seo关键词查询
  • 网站软件下载安装/搜索引擎快速排名推广
  • 网站建设及管理使用情况汇报/seo网站关键词优化方法
  • 做外贸要有英文网站吗/seo教程网站
  • 【Spring】SpringBoot 自动配置,@ComponentScan、@Import、ImportSelector接口
  • vllm启动Qwen/Qwen3-Coder-30B-A3B-Instruct并支持工具调用
  • 开源的现代数据探索和可视化平台:Apache Superset 快速指南 Quickstart
  • ARPO:让LLM智能体更高效探索
  • 力扣 hot100 Day63
  • ADB 查看 CPU 信息、查看内存信息、查看硬盘信息