1、掌握一维数组的作用
**数组:**构造数据类型之一数组是具有一定顺序关系的若干个变量的集合,组成数组的各个变量称为数组元素数组中各个元素的数据类型要求相同,用数组名和下标确定。数组可以是一维,也可以是多维如: char s[5];**一维数组**所谓一维数组是指只有一个下标的数组,它在计算机的内存中是连续存储的C语言中,一维数组的说明一般形式如下: [];例:int a[6] a存放是数组在内存中的首地址
下标 内存
0 a[0]
1 a[1]
2 a[2]
3 a[3]
4 a[4]
5 a[5]
#includeint main(){ int a[6],i; for(i=0;i<6;i++){ printf("%p",&a[i]); }}输出:0x7fffb23e16d00x7fffb23e16d40x7fffb23e16d80x7fffb23e16dc0x7fffb23e16e00x7fffb23e16e4注意事项:C语言对数组不作越界检查,使用时要注意**一维数组的初始化**初始化方式:在定义数组时,为数组元素赋初值int a[5]={1,2,3,4,5};说明-数组不初始化,其元素值为随机数。-对static数组元素不赋初始值,系统自动赋0值-只给部分数组元素赋值。
实例
冒泡排序它重复地走访过要排序的数列,一次比较两个元素,如果顺序错误就交换,走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。#include int main(){ int n=5; int a[5] ={12,56,15,64,7}; int temp; for(int i=0;itemp){ a[j]=a[j+1]; a[j+1]=temp; } if(j==(n-i)){ printf("%d",a[j]); } } }}
2、掌握二维数组的作用
二维数组的定义-定义方式:数据类型 数组名[常量表达式] [常量表达式] 例:int a [3][4];float b[5][2];int c [2] [3] [4];二维数组元素存放的顺序按行序优先 原因:内存是一维的#includeint main(){ int a [3][4]={{1,2,3,4},{5,4,3,6},{9,7,1,6}}; for(int i=0;i<3;i++){ for(int b=0;b<4;b++){ printf("%p %d ",&a[i][b],a[i][b]); } }}
3、字符数组和字符串
字符数组是元素的数据类型为字符类的数组-char c[10],ch[3][4];字符数组初始化-一个一个字符赋值-用字符串常量
4、字符串函数
字符串函数的用法
C库中实现了很多字符串处理函数#include几个常见的字符串处理函数-求字符串长度的函数 strlen-字符串拷贝函数 strcpy-字符串连接函数 strcat-字符串比较函数 strcmp
strlen
字符串长度函数strlen格式:strlen(字符串数组)功能:计算字符串长度返值:返回字符串实际长度,不包括 ‘0’在内xhh表示十六进制数代表的符号ddd表示8进制的-例:对于以下字符串,strlen(s)的值为“char s[10]={'A','0','B','C','0','D'};char s[]="v0will";char s[]= "x69141";#include #include int main(){ char s[10]={'A','0','B','C','0','D'}; char s1[]="v0will"; char s2[]= "x69141"; int len =strlen(s); int len1 =strlen(s1); int len2=strlen(s2); printf("%d %d %d",len,len1,len2); return 0;}
strcpy
字符串拷贝函数格式:strcpy(字符数组1,字符串2)功能:将字符串2,拷贝到字符数组1返值:返回字符数组1的首地址说明: -字符数组1必须足够大 -拷贝时'0' 一同拷贝#include #include int main(){ char s[10]={'A','B','C','D'}; char s1[20]; strcpy(s1,s); puts(s1); printf("%s",s1); return 0;}
strcat
字符串连接函数格式:strcat(字符数组1,字符串2)功能:将字符串2连到字符数组1后面返值:返回字符数组1的首地址说明: -字符数组1必须足够大 -连接前,两串均以'0'结束,串1的'0' 取消,新串后加0'; #include #include int main(){ char s[20]="www.chzz"; char s1[]=".org"; strcat(s,s1); printf("%s",s); return 0;}输出: www.chzz.org
strcmp
字符串比较函数strcmp格式:strcmp(字符数组1,字符串2)功能:比较两个字符串比较规则:对两个字符串左向友一个一个字符比较(ASCII码)直到遇到不同字符或'0' 为止返值:返回int型整数说明: -若字符串1字符串2 ,返回正整数 -若字符串1==字符串2 ,返回零 #include #include int main(){ char s[]="abc"; char s1[]="abc"; int result =strcmp(s,s1); printf("%d",result); return 0;}输出 :0
5、其他常见字符串函数
strncpy(p,p1,n) 复制指定长度字符串srtncat(p,p1,n) 附加指定长度字符串strcasecmp(p,p1) 忽略大小写比较字符串strncmp(p,p1,n) 比较指定长度字符串strchr(p,c) 在字符串中查找指定字符strstr(p,p1) 查找字符串
6、总结与思考
总结
主要学习C语言中常见的字符串函数包括:strcpy strcat strcmp strlen
思考
使用字符串拷贝strcpy,有什么注意事项?字符串比较函数,是如何比较两个字符串大小的?