C语言第五天-----------数组、字符串、二维数组

数组:是一块连续且同类型的存储空间。

定义数组:
类型 数组[长度];
整型数组:
int/short/long 数组名[长度];

注意: int buf[10]={1,2,3,4,5,6};
	sizeof(buf)/sizeof(int)==10   是不确定元素的个数的
字符数组:

定义: char buf[长度];
初始化:在定义同时赋初值
char buf[10]={‘a’,‘b’,‘c’};

	char buf[]="lifei";在内存中等于 char buf[]={'l','i','f','e','i','\0'}; 

规定:在字符数组中用’\0’/null作为结束字符
字符串常量: “多个字符”

	注:字符串常量的末尾时会自带'\0',系统函数或%s打印时,遇到字符串的\0时结束
	buf[]="li\0fei";输出字符串的时候只输出   li

字符串系统函数:string.h(需要加库)
unsigned int strlen(const char*); 求字符串元素的个数(不包含\0)
注:在笔试中如下题目: sizeof(buf) /strlen(buf)
字符串拷贝函数:
strcpy(des,src); src的字符串拷贝给des
strncpy(des,src,n); 将src的前n个字符拷贝给des
字符串比较:
int strcmp(str1,str2)
int strncmp(str1,str2,n)

					     返回值
			str1>str2       >0
			str1=str2       =0
			str1<str2       <0
		注:比较字符串是通过词典序列来比较(z>a,即wozd>world)	

二维数组与多维数组:

1、定义二维数组:类型 数组名[行][列]
1.元素的个数:行*列 空间长度:行*列*sizeof(类型)
2.在逻辑结构是二维数组,在物理结构是线性结构

	buf[5][5]={{1,2,3,4,5},{1,2,3,4,5},...};
	其中buf[0][5]=buf[1][0];物理结构没有越界,但是逻辑结构已经越界

2、初始化:在定义数组同时赋初值
类型 数组名[行][列]={{…},{…},{…},…}
注:若每行初始化部分时,其他元素值为0

		char buf[5][5];
		其中,buf是整个数组的首地址,buf[0]是第一行的首地址

3、引用元素:下标法
数组名[行][列] 行列下标都是从0开始
eg: 第三行的第二列元素:数组名[2][1]

练习:
1、实现求长度过程
2、实现拷贝过程()
3、实现比较过程
4、实现查找字符串:存在(说明该子字符串的首位置),不存在
char buf[]=“hello,my name is lifei;I have a friend…”
char buf1[]="lifei"是否存在

5、int buf[3][5]={…};
1、打印第2列的所有元素
2、遍历输出所有元素(每一行换行)
6、有一个如下二维数组:
int score[4][5]={{78,79,67,89,100},{},{},{},{}}; (每一行代表一个班级)
1.求该年级最高分
2.求每个班最高分
3、求每个班的平均分
4、该年级平均分
5、该年级不及格人数

7、有一个如下二维数组:
int buf[5][5]={…};
判断该数组元素是否是斜对角对称。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值