C语言的字符数组和字符串

news/2024/11/30 0:49:50/

文章目录

  • 1 字符数组与字符串区别
  • 2 字符数组和字符串定义
  • 3 字符串长度

1 字符数组与字符串区别

1、C语言中没有字符串这种数据类型,可以通过char的数组来替代;
2、字符串一定是一个char的数组,但char的数组未必是字符串;
3、数字0(和字符‘\0’等价)结尾的char数组就是一个字符串,但如果char数组没有以数字0结尾,那么就不是一个字符串,只是普通字符数组,所以字符串是一种特殊的char的数组。

2 字符数组和字符串定义

用来存放字符的数组称为字符数组,例如:

char a[10];  //一维字符数组
char b[5][10];  //二维字符数组
char c[20]={'c', '  ', 'p', 'r', 'o', 'g', 'r', 'a','m'};  // 给部分数组元素赋值
char d[]={'c', ' ', 'p', 'r', 'o', 'g', 'r', 'a', 'm' };  //对全体元素赋值时可以省去长度

字符数组实际上是一系列字符的集合,也就是字符串(String)。在C语言中,没有专门的字符串变量,没有string类型,通常就用一个字符数组来存放一个字符串

C语言规定,可以将字符串直接赋值给字符数组,例如:

char str[30] = {"c.biancheng.net"};
char str[30] = "c.biancheng.net";  //这种形式更加简洁,实际开发中常用

数组第 0 个元素为’c’,第 1 个元素为’.‘,第 2 个元素为’b’,后面的元素以此类推。

为了方便,你也可以不指定数组长度,从而写作:

char str[] = {"c.biancheng.net"};
char str[] = "c.biancheng.net";  //这种形式更加简洁,实际开发中常用

给字符数组赋值时,我们通常使用这种写法,将字符串一次性地赋值(可以指明数组长度,也可以不指明),而不是一个字符一个字符地赋值,那样做太麻烦了。

这里需要留意一个坑,字符数组只有在定义时才能将整个字符串一次性地赋值给它,一旦定义完了,就只能一个字符一个字符地赋值了。请看下面的例子:

char str[7];
str = "abc123";  //错误
//正确
str[0] = 'a'; str[1] = 'b'; str[2] = 'c';
str[3] = '1'; str[4] = '2'; str[5] = '3';

3 字符串长度

所谓字符串长度,就是字符串包含了多少个字符(不包括最后的结束符'\0')。例如"abc"的长度是 3,而不是 4。

在C语言中,我们使用string.h头文件中的 strlen() 函数来求字符串的长度,它的用法为:

length strlen(strname);

strname 是字符串的名字,或者字符数组的名字;length 是使用 strlen() 后得到的字符串长度,是一个整数。


http://www.ppmy.cn/news/554841.html

相关文章

【Java 基础篇】Java StringBuffer:线程安全的可变字符串操作

文章目录 导言一、StringBuffer的创建和初始化二、StringBuffer的基本操作三、StringBuffer与String的转换四、StringBuffer的线程安全性总结 导言 在Java中,字符串是不可变的,这意味着每次对字符串进行操作时都会创建一个新的字符串对象。然而&#xf…

EC11编码器调光C语言程序代码 基于STC单片机 还可用于电机调速

EC11编码器调光C语言程序代码 基于STC单片机 还可用于电机调速 编号:565653220266749好运佳星(_)

2021年博客之星

我正在参加年度博客之星评选,请大家帮我投票打分,您的每一分都是对我的支持与鼓励。 https://bbs.csdn.net/topics/603960721

喜讯|星舆科技获得CMMI 3级认证,研发能力获国际认可!

近日,经国际权威认证团队严格审核与评估,星舆科技顺利通过CMMI 3级国际认证。这标志着星舆科技在软件研发能力、实施服务交付以及项目管理水平等方面进一步与国际主流模式接轨,研发能力达到了行业的先进水平。 CMMI(Capability Ma…

2022年度博客之星评选

点进来的小伙伴先不要划走~~,花一分钟时间帮忙投个票了,感激! 感谢一直以来还在默默地关注着我的各位小伙伴,2022注定是不平凡的一年,无论环境多么恶劣、处境多么艰难,都希望我们能够怀着坚定的信心&#…

安全应该服务于业务|中安网星创始人入选2021福布斯中国U30

9月16日,福布斯中国揭晓2021年度30 Under 30榜单,中安网星创始人杨常城荣誉上榜。 2021福布斯中国30 Under 30 榜单评选标准为:年龄在30岁以下,在业内崭露头角,或者展现出成为未来行业及社会翘楚的潜在力量。本次评选涉…

“星链”(StarLink)计划与“虹云”工程,让手机连接太空WiFi成为现实!

“星链”计划是由马斯克创办的私人太空探索技术公司——Space X在2015年提出,目的是提供覆盖全球的高速互联网WIFI服务,SpaceX计划在2020年中期前部署12000颗低成本卫星,分别在550公里轨道部署1600颗,在1150公里轨道部署2800颗&am…

数星星 Stars

题目链接 y从小到大排序&#xff0c;y相同x从小到大排序&#xff0c;转化为当前星星i之前&#xff0c;x小于等于的i的星星个数&#xff0c;即为这个星星的级数&#xff08;正序对问题&#xff09; #include<iostream> #include<algorithm> #include<cstring&g…