C语言之字符串数组

目录

字符串数组

 读取字符串数组中字符串

注意

字符串可以用数组来表示,所以字符串的集合也可以用数组的数组(即多维数组)来表示,下面我们就来学习字符串数组。

字符串数组

类型相同的数据集合适合用数组来实现,所以字符串的集合就称为字符数组。

首先来看下生成并显示字符串数组的程序:

#include<stdio.h>

int main()
{
	int i;
	char cs[][6] = {"ABC", "DEF", "MAX"};
	for(i = 0; i < 3; i++)
	{
		printf("cs[%d] = \"%s\"\n", i, cs[i]);
	}
	
	return 0;
}

该程序中的数组是由三个字符串组成的,数组cs是3行6列的二维数组(元素类型为char[6]型、元素个数为3的数组)。

数组cs的元素,是char[6]型的数组,数组cs[1—3]分别表示“ABC”,“DEF”,“MAX”,如下图:

二维数组的各构成元素都是由二维数组的两个下标所构成,如:字符“A”由cs[0][0]表示

数组声明中初始值不足时,用0来初始化该元素,所以各个字符串后面的空白部分都初始化为null字符。

 读取字符串数组中字符串

我们来编写一个从标准输入读到的字符串的各个字符逐个往字符串数组中的各个元素赋值:

#include<stdio.h>

int main()
{
	int i;
	char s[3][128];
	
	for(i = 0; i < 3; i++)
	{
		printf("s[%d]:", i);
		scanf("%s", s[i]);
	}
	for(i = 0;i < 3;i++)
	{
		printf("s[%d] = \"%s\"\n", i, s[i]);
	}
	return 0;
}

该程序中的数组s是3行128列的二维数组,即元素类型为char[128]、元素个数为3的数组,数组为3行是因为需要读取并显示三个字符串。

因为我们事先不知道要输入什么字符,所以数组元素的个数就必须多一些

注意

因为s[0],s[1]等都是字符串(字符数组),所以将它们传入scanf函数时不可以带&运算符(在学到指针与数组的关系中可以得知数组名原则上可以被解释为指向该数组起始元素的指针,所以不能加上&。&在访问的是该元素的地址,当然这只是我目前学习阶段的浅薄理解)。

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学海无涯.苦作舟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值