C语言:数组

xiaoxiao2021-03-01  18

1.一维数组

1.1 一维数组的定义

     类型说明符   数组名[常量表达式];// int a[10];

    注:常量表达式中可以包括常量和符号常量,也就是说,C语言不允许对数组的大小做动态的定义,即数组的大小不依赖于程序运行过程中变量的值;

   如下是不允许的:

int n; scanf("%d",&n); int a[n];/* 在程序中临时输入数组的大小 */

1.2 一维数组元素的引用

数组必须先定义,再使用。

表现形式为:数组名[小标]

1.3 一维数组的初始化

对数组的元素的初始化可以用一下方法实现:

a.在定义数组时对数组元素赋予初值,列如:

int a[5] = {0,1,2,3,4};

b.可以只给一部分元素赋值,其余元素值为0;

c.如果想使一个数组中元素值为0,可以写成:

int a[5] = {0,0,0,0,0}; or int a[10] = {0};

2.二维数组的定义和引用

2.1 二维数组的定义

二维数组定义的一般形式为:

类型说明符  数组名[常量表达式][常量表达式];

C语言中,二维数组中元素排列的顺序是按行存放的,即在内存中先顺序存放第一行的元素,再存放第二行的元素。

例如:

a[0][0] -> a[0][1] ->a[0][2] -> a[1][0] -> a[1][1] ->a[1][2].......

2.2 二维数组的初始化

可以用以下的方法对二维数组初始化:

a.分行给二维数组赋初值:

int a[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};

b.可以将所有的数据写在一个花括号内:

int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};

c.可以对部分元素赋初值:

int a[3][4] = {{1},{5}};//其余为0

 

3.字符数组

用来存放字符数据的数组是字符数组。字符数组中的一个元素存放一个字符。

3.1 字符数组的定义

由于字符型与整型是互通的。

3.2 字符数组的初始化

对字符数组初始化,最容易理解的方式是逐个字符赋给数组中各元素。

char c[10] = {'I',' ','a','m','h','a','p','p','y'};

如果在定义字符数组时不进行初始化,则数组中各元素的值是不可预料的。

4.字符串处理函数

4.1 puts函数

其一般形式:puts(字符数组)

其作用是将一个字符串(以'\0'结束的字符序列)输出到终端。相当于printf。

4.2 gets函数

其一般形式:gets(字符数组);

其作用是从终端输入一个字符串到字符数组,并且得到一个函数值。该函数值是字符数组的起始地址。

注意:用puts和gets只能输出或输入一个字符串。

4.3 strcat函数

其一般形式:strcat(src,dst);

其作用是连接2个字符数组中的字符串,把dst接到src的后面,结果放在src中。

说明:

a.字符数组src必须足够大,以便容纳连接后的新字符串。

b.连接前两个字符串的后面都有'\0',连接时将字符串src后面的'\0'取消,只在新串最后保留'\0'。

4.4 strcpy和strncpy函数

其一般形式:strcpy(dst,src);//strncpy(dst,src,len);

其作用是将字符串src复制到dst中。

4.4 strcmp函数

其一般形式:strcmp(src1,src2);

其作用是比较字符串src1和字符串src2。

字符串比较规则:对两个字符串自左向右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或遇到'\0'为止。如全部字符相同,则认为相等;若出现不同,则以第一个不相同的字符的比较结果为准。

4.5 strlen函数

其一般形式:strlen(str);

其作用是字符串长度的函数。函数的值为字符串中的实际长度(不包括'\0');

4.6 strlwr函数

其一般形式:strlwr(str);

函数的作用是将字符串中大写字母换成小写字母。

4.7 strupr函数

其一般形式:strupr(str);

函数的作用是将字符串中小写字母换成大写字母。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载请注明原文地址: https://www.6miu.com/read-3849978.html

最新回复(0)