知识来源:谭浩强《c程序设计》第六章
1.基础知识
-数组元素是有序的,一个数组中所有元素属于同一类型
-数组是从0开始的,不是从1开始的。
-对于整数型数组来说,结尾字符为整数;对于字符型数组来说,结尾字符为\0,占一个空间。
2.一维数组
①定义形式
类型符 数组名[常量表达式];
②常量表达式可以包括常量和符号常量(如3+5),但是不能做动态定义,不能根据程序运行中变量值定义。
③初始化方法:可以全部赋值或者部分赋值。
如果给全部元素赋值,可以根据数据个数确定数组长度。如int a[]={1,2,3};
④对于未初始化的数组元素,系统会自动初始化。字符型数组初始化为’\0’,指针型数组初始化为NULL,其他数组初始化为0。
3.二维数组
①一般定义形式
类型说明符 数组名[常量表达式][常量表达式];
②二维数组中元素排列的顺序是按行存放的,即先存放第一行,再依次存放其他行元素。
在内存中,各元素是连续存放的,不是二维的,是线性的。
③初始化方法
(1)分行赋值
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
(2)全部写在一个括号里,按照内存中排列顺序对各元素赋初值
(3)可对部分元素赋初值
int a[3][4]={{1},{5},{9}};
int a[3][4]={{1},{},{9}};
(4)如果对全部元素赋初值,则定义时第一维长度可以不指定,但第二维长度不能省略
int a[ ][4]={{0,0,3},{},{0,10}};
4.字符数组
①定义方式与定义数值型数组类似
例:char c[2];
c[0]=’i’;c[1]=’o’
②因为字符型数据是以整数形式(ASCII码)存放的,因此可以用整形数组来存放字符数据。
int c[10];
c[0]=’a’;
③初始化方法
(1)逐个赋值
char c[5]={‘l’,’0’,’v’,’e’};
如果初值个数和预定数组长度相同,定义时可以省略数组长度。
(2)字符串形式(在C语言中,将字符串作为字符数组来处理。)
char str[]=”I love C”;
④字符串以’\0’作为结束标志,把它前边的字符组成一个字符串。
用字符数组存储字符串常量时会自动加一个’\0’作为结束符。
⑤下面两种定义形式等价
char c[]={‘l’,’o’,’v’,’e’,’\0’};
char c[]={“love”};
⑥字符数组不要求最后一个字符为’\0’,甚至可以不包括’\0’。
为了便于测定字符串长度,常常在字符数组后加一个’\0’。
⑦字符数组的输出与输入
-逐个字符输出:%c
-输出整个字符串:%s
-可以用scanf函数输入一个字符串。scanf(“%s”,c);
5.字符串处理函数
(1)puts函数——输出字符串的函数
--形式: puts(字符数组)
--可以包含转义字符,输出完字符串后换行(把结束的’\0’换成’\n’)
(2)gets函数——输入字符串的函数
--形式: gets(字符数组)
注:puts和gets只能处理一个字符串
(3)strcat函数——字符串连接函数
--形式:strcat(字符数组1,字符数组2)
--把字符串2接到字符串1的后面,结果放在字符数组1中,得到字符数组1的地址。
--连接时把字符串1后面的’\0’取消,只在新字符串的最后保留。
(4)strcpy和strncpy函数——字符串复制函数
--形式 strcpy(字符数组1,字符串2)
-字符串2可以是字符数组名,也可以是字符串常量
-作用:将字符串2复制到字符数组1中
--字符数组1的长度不应小于字符串2的长度
--如果复制前没有对str1数组初始化,除str2复制过去的内容和其后的’\0’,其后字节内容不能确定
--可以用strncpy将字符串2前面几个字符复制到字符数组1中去。
例: strncpy(str1,str2,2); 把str2前两个字符复制过去取代str1前两个字符。
--不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。字符数组名是一个地址常量,不能改变值。
Str1=”China”;
Str1=Str2;都是错误的
(5)strcmp函数——字符串比较函数
--形式 strcmp(字符串1,字符串2)
strcmp(“China”,”korea”);
--规则:将两个字符串自左往右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或遇到’\0’为止。
--如果出现不同字符,以第一对不相同的字符比较结果为准。若相同,函数值为0;若str1>str2,函数值是正整数;若str1<str2,函数值是负整数
--如果两个字符串都由英文字母组成,则在英文字典中位置在后面的为“大”。
(6)strlen函数——测字符串长度的函数
--形式 strlen(字符数组)
--不包括’\0’,可以直接测定字符串常量的长度。
标签:字符,复习,常量,--,数组,字符串,函数 From: https://www.cnblogs.com/rhz-blog/p/17031605.html