学习目标:
必备Linux命令和C语言基础
学习内容:
:
二十、一维数组
二十一、二维数组
二十二、字符数组和字符串
二十三、字符串处理函数
学习时间:
1day学习产出:
二十、一维数组
1、什么是数组
*数组是一个构造类型;
*是具有一定顺序的若干个变量的集合,组成数组的各个变量称位数组的元素;
*数组的元素类型必须相同,可以使用下标进行访问;
2、定义格式:
<存储类型> <数据类型> <数组名>
3、数组的引用
*数组先定义后使用
*逐个引用数组,不能一次引用;
*数组的表示形式:数组名[下标]
4、数组的初始化
*定义时初始化:
eg:int a[5]={1,2,3,4,5};
*对static数组不赋初始值时,系统自动赋予0值;
*部分赋初值时未赋值的部分赋予0值;
二十一、二维数组
1、二维数组的定义
<存储类型> <数据类型> <数组名[常量表达式][常量表达式]>;
*申明时列数不能省略,行数可以省略;
*二维数组也是一维顺序存储的;
*行优先特点;
2、二维数组的引用
*形式:数组名[下标][下标]
3、二维数组的初始化
*分行初始化
*按元素排列顺序初始化
*部分初始化(未初始化的部分自动补0);
二十二、字符数组和字符串
1、什么是字符数组
*有一定顺序关系的若干字符变量的集合就是字符数组;
2、字符数组的定义方式
*char 字符数组名[下标];
3、字符数组的初始化
*定义时全部赋值初始化;
*使用字符串常量来初始化;
4、什么是字符串
字符串是指以’\0'作为结束标识符的一组字符;
5、字符串的输入和输出
*使用循环诸逐个输入;
*使用scanf("%S",str)输入;
*使用gets()函数输入;
*使用printf("%S\n",str)输出;
*使用puts()函数输出;
6、字符串和字符数组的关系
*字符串存放在字符数组中,并以'\0'结尾;
*字符数组使用{...}初始化时,并不带'\0';
*使用字符串的输入函数时,注意缓存;
二十三、字符串处理函数
*C语言的库函数中提供很多对字符串进行处理的函数;
1、字符串拷贝函数strcpy()
*头文件<sting.h>
*函数原型:char *strcpy(char *dest,const char *src)
*功能:字符串拷贝
*参数:src为串的起始地址,dest为目标串的起始位置;
*返回值:目标串的起始地址;
2、字符串连接函数strcat()
*头文件<sting.h>
*函数原型:char *strcat(char *dest,const char *src)
*功能:将字符串src连接到字符串dest后面;
*参数:src为串的起始地址,dest为目标串的起始位置;
*返回值:目标串的起始地址;
3、字符串比较函数strcmp()
*头文件<sting.h>
*函数原型:int strcmp(char *dest,const char *src)
*功能:按照ASCII码的顺序比较字符串s1和字符串s2的大小;
*参数:src为串的起始地址,dest为目标串的起始位置;
*返回值:比较结果;
dest=src:返回值=0;
dest>src:返回值>0;
dest<src:返回值<0;
4、求字符串的长度函数strlen()
*头文件<sting.h>
*函数原型:size_t strlen(char *s);
*功能:求字符串的长度(不含字符串结束标志'\0');
*参数:s为字符串的长度;
*返回值:目标串的长度(不含字符串结束标志'\0');
5、字符串分解函数strtok
*头文件<sting.h>
*函数原型:char *strtok(char *s,const char *delim);
*功能:将字符串分割成一个个的小片段;
*参数:s为要分解的字符串,delim为分割符字符串;
*返回值:目标串的长度(不含字符串结束标志'\0');
6、字符串连接函数strstr()
*头文件<sting.h>
*函数原型:char *strstr(char *s,char *src);
*功能:连接两个字符串;
*参数:s为第一个字符串,src为需要连接的字符串;
*返回值:连接后的字符串;