字符数组

字符数组
用来存放字符数据的数组是字符数组。字符数组中的每一个元素存放一个字符,其定义和使用方法与其他类型的数据基本相似。

1.1字符数组的定义和使用
字符数组的定义与其他类型的数组类似,标准形式如下:

Char 数组名 【常量表达式】

例如:

Char array [5];
Array[0]=‘h’;
Array[1]=‘e’;
Array[2]=‘l’;
Array[3]=‘l’;
Array[4]=‘o’;

定义array为字符数组,包含5个元素

1.2字符数组的初始化

对字符数组赋初值的方法有很多种,分别介绍如下。
⑴最简单的方法是逐个字符赋给数组中各元素

用*打印平行四边形





在这里插入图片描述

当给字符数组赋初值时,如果提供的初值个数大于数组长度,则按语法错误处理,如果初值个数小于数组长度,则只将这些字符赋给数组中前面的元素,其余元素自动定义为空字符
⑵如果初值个数与预定的数组长度相同,在定义时可以省略数组长度,系统会自动根据初值个数确定数组长度
Char a[]=
{
’,’’,’*’

}

利用字符串给字符数组赋初值。通常用一个字符数组来存放一个字符串,字符串总是以’/0’作为串的结束符,因此当把一个字符串存入一个数组时,也把结束符‘/0’存入数组,并以此作为该字符串结束的标志。有了’/0’标志后,字符数组的长度就显得不那么重要。当然在定义字符数组时还是要估计一下实际字符串长度,以保证数组长度始终大于字符串的实际长度。如果在一个字符串数组中先后存放多个不同长度的字符串,则应该使数组的长度大于最长的字符串的长度。一字符串的方法对数组进行初始化赋值如下

Char c[]={“ai ni xie wen li ”};

或者去掉{}写为:

Char c []=”hello world”;
用字符串的方式赋值比字符逐个赋值要多占一个字节,多占的这个字节用于存放字符串结束标志’\0,上面的数组c在内存中的实际存放情况
h e l l o w o r l d \0
‘/0’是由c编译系统自动加上的。所以上面的赋值语句等价于;
Char []={‘h’,’e’,}

字符串用“”号括起来,这点有别于字符

1.3
字符数组的输入/输出方法
⑴格式字符%c,实现字符数组中字符的逐个输入与输出。

字符数组中逐个字符输出
在这里插入图片描述

字符逐个输入到字符数组中,再输出
在这里插入图片描述

⑵格式字符%s,将整个字符串依次输入或输出

2.12字符串输入输出
在这里插入图片描述

使用%s输入应该注意
①scanf(“%s”,array);注意这里的array没有&,C语言中规定数组名代表该数组的起始地址。如果写成scanf(“%s”&array)//错误
②用%s格式字符输出字符串时,printf函数中的输出项是字符数组名,而不是数组元素名
③输出字符不包括结束符‘\0’。
④如果一个字符数组中包含多个‘\0’,则在遇到第1个时便结束输出。当输入字符串‘’
Welcome to our school
只会输出 welcome
之所以会有这样的结果,因为实际上并没有把这21个字符加上’\0’送到数组array中,而只将空格前的字符welcome送到array中

如果项多个字符串输入\输出
例子
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值