第五节--数组和字符串

一、一位数组

掌握一维数组的使用


数组概述:
数组
构造数据类型之一
数组是具有一定顺序关系的若干个变量的集合,组成数组的各个变量称为数组的元素
数组中各元素的数据类型要求相同,用数组名和下标确定。数组可以是一维的,也可以是多维的。


一维数组:
一维数组的定义
所谓一维数组是指只有一个下标的数组。它在计算机的内存中是连续存储的。
C语言中,一维数组的说明一般形式如下:
<存储类型> <数据类型 > <数组名>[<表达式>] ;
在这里插入图片描述注意事项
C语言对数组不作越界检查,使用时要注意
int a[5]; a[5] = 10
关于用变量定义数组维数
int i = 15; int a[i]


一维数组的引用:
数组必须先定义,后使用
只能逐个引用数组元素,不能一次引用整个数组
数组元素表示形式:数组名[下标]
其中:下标可以是常量或整型表达式

int a[10]; 
   printf(%d”, a); ()  
      
   for(j=0;j<10;j++)
       printf(%d\t”, a[j]); ()  

一维数组的初始化:
初始化方式:在定义数组时,为数组元素赋初值
int a[5]={1,2,3,4,5};
说明
数组不初始化,其元素值为随机数
对static数组元素不赋初值,系统会自动赋以0值
只给部分数组元素赋初值
在这里插入图片描述
程序举例
冒泡排序
它重复地走访过要排序的数列,一次比较两个元素,如果顺序错误就交换。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
在这里插入图片描述
总结与思考
主要介绍了一维数组的概念、引用和初始化。演示了有关一维数组的程序的编写。
思考
如何改进冒泡排序的效率?

二、二维数组

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

程序举例
打印杨辉三角的前十行
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1

总结与思考
主要讲解了二维数组的用法,包括二维数组的定义、引用、初始化,存储等。
思考
有一个3×4的矩阵,要求输出其中值最大的元素的值,以及它的行号和列号。

三、字符数组

字符数组是元素的数据类型为字符类型的数组
–char c[10], ch[3][4];
字符数组的初始化
–逐个字符赋值
–用字符串常量


字符数组初始化:
在这里插入图片描述
在这里插入图片描述
字符串:
C语言中无字符串变量,用字符数组处理字符串
字符串结束标志:‘\0’
在这里插入图片描述
程序举例
输入一个字符串,然后将其逆序输出


总结与思考
主要介绍了字符数组的定义和初始化,字符串的定义及用法
思考
C语言中,字符数组和字符串有什么区别和联系?
C语言中,有哪些操作字符串的函数?

四、字符串函数值strlen函数

在这里插入图片描述


字符串长度函数strlen:

格式:strlen(字符数组)
功能:计算字符串长度
返值:返回字符串实际长度,不包括‘\0’在内
\xhh表示十六进制数代表的符号
\ddd表示8进制的
例:对于以下字符串,strlen(s)的值为:
char s[10]={‘A’,‘\0’,‘B’,‘C’,‘\0’,‘D’};
char s[ ]=“\t\v\\0will\n”;
char s[ ]=“\x69\141\n”;
答案:1 3 3


字符串函数之strcpy函数:

格式:strcpy(字符数组1,字符串2)
功能:将字符串2,拷贝到字符数组1中去
返值:返回字符数组1的首地址
说明:
字符数组1必须足够大
拷贝时‘\0’一同拷贝


字符串函数之strcat函数:

字符串连接函数strcat
格式:strcat(字符数组1,字符数组2)
功能:把字符数组2连到字符数组1后面
返值:返回字符数组1的首地址
说明:
字符数组1必须足够大
连接前,两串均以‘\0’结束;连接后,串1的‘\0’取消,新串最后加‘\0’

在这里插入图片描述


字符串函数之strcmp函数:

格 式:strcmp(字符串1,字符串2)
功 能:比较两个字符串
比较规则:对两串从左向右逐个字符比较
(ASCII码),直到遇到不同字符或‘\0’为止
返 值:返回int型整数
a. 若字符串1< 字符串2, 返回负整数
b. 若字符串1> 字符串2, 返回正整数
c.若字符串1== 字符串2, 返回零


总结与思考
主要介绍了C语言中常见的字符串函数.
包括:strcpy、strcat、strcmp、strlen。
思考:
使用字符串拷贝函数strcpy,有什么注意事项?
字符

七、字符串函数之扩展用法

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值