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

企业微信客户管理/班级优化大师的优点

企业微信客户管理,班级优化大师的优点,wordpress添加标签后哪里显示,专门做排行的网站字符串1. 前言2. 预备知识2.1 字符2.2 字符数组3. 什么是字符串4. \04.1 \0是什么4.2 \0的作用4.2.1 打印字符串4.2.2 求字符串长度1. 前言 大家好,我是努力学习游泳的鱼。你已经学会了如何使用变量和常量,也知道了字符的概念。但是你可能还不了解由字符…

字符串

    • 1. 前言
    • 2. 预备知识
      • 2.1 字符
      • 2.2 字符数组
    • 3. 什么是字符串
    • 4. '\0'
      • 4.1 '\0'是什么
      • 4.2 '\0'的作用
        • 4.2.1 打印字符串
        • 4.2.2 求字符串长度

1. 前言

大家好,我是努力学习游泳的鱼。你已经学会了如何使用变量和常量,也知道了字符的概念。但是你可能还不了解由字符构成的字符串,这篇文章将带你一探究竟。

2. 预备知识

2.1 字符

单引号引起来的一个字符,用来初始化char类型的变量。

'a'; // 这是一个字符
char ch = 'w'; // 用来初始化char类型的变量

2.2 字符数组

字符数组可以存储很多字符,格式是char+空格+数组名+左方括号(+数组最多存储的字符个数,如果省略就默认取初始化的字符个数)+右方括号+初始化(大括号引起来几个字符,中间用逗号隔开)

char ch[3] = { 'a', 'b', 'c' }; // 最多存3个字符,即a,b,c
char ch[] = { 'd', 'e', 'f', 'g' }; // 方括号内省略字符个数,默认为4,因为初始化了4个字符

3. 什么是字符串

用双引号引起来的一串字符叫做字符串。

"abcdefg"; // 这就是一个字符串

4. ‘\0’

4.1 '\0’是什么

字符串可以用来初始化字符数组。

char arr1[] = "abc";
char arr2[] = { 'a', 'b', 'c' };

arr1arr2有什么区别呢?
在这里插入图片描述
我们发现,arr2就是很正常的存储了a,b,c这3个字符,但是arr1在后面还跟了个'\0'
这个'\0'究竟是何方神圣?

字符串的结尾都隐藏了一个叫做'\0'的转义字符。

"abc"这个字符串其实是4个字符:'a','b','c','\0',所以说,

字符串的结束标志是'\0'

4.2 '\0’的作用

4.2.1 打印字符串

我们可以用printf配合%s打印字符串。

#include <stdio.h>int main()
{printf("%s\n", "abcdef");return 0;
}

把上面的arr1arr2打印出来会是怎样的呢?

#include <stdio.h>int main()
{char arr1[] = "abc";char arr2[] = { 'a', 'b', 'c' };printf("%s\n", arr1);printf("%s\n", arr2);return 0;
}

输出:
abc
abc烫烫烫烫烫烫烫烫烫烫bc

我们发现,字符串arr1正常打印,但是字符数组arr2打印出来的是个啥玩意呀?
要搞清楚这一点,就要明白arr1arr2的内存布局,以及'\0'的作用。
arr1是用字符串"abc"初始化的,根据前面说的,字符串的结束标志是\0,字符串的结尾都隐藏了一个\0,arr1数组里相当于存储了'a','b','c','\0'四个字符。
arr2就不一样了,它只是单纯的用三个字符'a','b','c'来初始化的,里面也只存放着这三个字符,后面没有'\0',内存中后面放了什么,我们无从知晓。
%s是用来打印字符串的,还是那句话,字符串的结束标志是'\0'
在打印arr1时,打印了'a','b','c',就遇到了'\0'这个结束标志,停止打印。
反观arr2,打印完'a','b','c',没有遇到'\0',就继续把内存中后面的值打印出来,直到遇到'\0'才停止。可是,我们不知道内存中后面放了啥,换句话说,内存中后面放的都是些随机值,那打印出来的也是随机值,具体表现出来就是abc后面的烫烫烫。
如果我们手动放一个'\0',两个字符数组的内存布局就一样了。

#include <stdio.h>int main()
{char arr1[] = "abc";char arr2[] = { 'a', 'b', 'c', '\0' };printf("%s\n", arr1);printf("%s\n", arr2);return 0;
}

输出:
abc
abc

4.2.2 求字符串长度

我们可以用strlen函数求字符串长度。

strlen是C语言提供的库函数,对应的头文件是string.h,使用时只需要把字符串传进去就可以了。

#include <stdio.h>
#include <string.h>int main()
{char arr1[] = "abc";char arr2[] = { 'a', 'b', 'c' };printf("%d\n", strlen(arr1));printf("%d\n", strlen(arr2));return 0;
}

输出:
3
42

有了前面的知识,就很容易理解这个结果了。
arr1里面存的是'a','b','c','\0',由于有'\0'的存在,可以很清楚的求出字符串的长度是3,也就是'\0'前面的字符的个数。
反观arr2,因为'a','b','c'后面没有'\0',所以无法求出其长度。就这次的运行结果而言,程序在内存中一直往后找呀找呀,从'a'开始一直找了42个字符才在内存中遇到了'\0',于是算出来的结果是42。这个结果是不可预料的,它是个随机值。
如果手动放一个'\0',就能够准确地求出它的长度了。

#include <stdio.h>
#include <string.h>int main()
{char arr1[] = "abc";char arr2[] = { 'a', 'b', 'c', '\0' };printf("%d\n", strlen(arr1));printf("%d\n", strlen(arr2));return 0;
}

输出:
3
3

总结:strlen求的是'\0'前面字符的个数!

http://www.jmfq.cn/news/5146561.html

相关文章:

  • 大型网站团队人数/百度seo优化是做什么的
  • 做视频网站需要什么空间吗/广州网络营销推广
  • 安徽智能网站建设制作/网络优化公司有哪些
  • 唐山做网站哪家好/网站推广优化排名seo
  • 深圳石岩网站建设/南昌seo计费管理
  • 广元网站建设价格/郑州关键词优化顾问
  • 虹口网站建设/国内设计公司前十名
  • 做电影网站怎么拿到版权/怎么建个人网站
  • 如何快速的建设网站/博客推广工具
  • 十堰市网站建设/b2b关键词排名工具
  • 怎么做自己的微信网站/大兴今日头条新闻
  • 衡阳网站备案/餐饮营销案例100例
  • 武汉app网站开发/东莞市网站seo内容优化
  • 京东网站建设/3小时百度收录新站方法
  • 自己做一个入库出库系统/宁波seo公司排名
  • 吸引企业做网站的文章内容/网站制作步骤流程图
  • 济南富腾网站建设/北京seo优化排名推广
  • 自己做发卡网站长/网站搜索排名靠前
  • 哪里可以接网站开发项目做/seo新手教程
  • 你博客使用的WordPress吧/seo点击排名
  • 做网站跟app需要多少钱/2345网址导航大全
  • 招远水利建设工程公司网站/寻找郑州网站优化公司
  • 信用卡申请网站建设/爱战网关键词挖掘查询工具
  • 如果想看网站的收费电影应该怎么做/东莞市网站seo内容优化
  • 微信做网站的弊端/seo提升排名
  • 查网站关键词工具/软文广告文案案例
  • 个人网站的制作论文/软文代写接单平台
  • 给网站做灰盒渗透测试需要哪些数据/太原首页推广
  • 网站制作复杂吗/现场直播的视频
  • 做整体衣柜宣传海报的网站/怎么找需要做推广的公司