Chinaunix首页 | 论坛 | 博客
  • 博客访问: 552170
  • 博文数量: 156
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1183
  • 用 户 组: 普通用户
  • 注册时间: 2013-11-22 11:42
文章分类

全部博文(156)

文章存档

2015年(67)

2014年(89)

分类: C/C++

2015-04-29 22:44:05

一、数组

1、 定义:一批具有同名的同属性的数据

2、 特点

1) 数组是一组有序数据的集合

2) 用一个数组名(如s)和下标(如15)来唯一确定数组中的元素

3) 数组中的每一个元素都属于同一个数据类型

二、怎样定义和引用一维数组

1、 怎样定义一维数组

下面是对数组的定义

int a[10];  //它表示定义了一个整型数组,数组名为a,此数组有10个整型元素

        定义一维数组的一般形式

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

        说明:

1) 数组名的命名规则和变量名相同,遵循标识符命名规则

2) 在定义数组时,需要指定数组中元素的个数,方括号中的常量表达式用来表示元素的个数,即数组长度。

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

2、 怎样引用一维数组元素

引用数组元素的表示形式为

数组名[下标]

例如a[0]就是数组a中序号为0的元素。

3、 一维数组的初始化

1) 在定义数组时对全部数组元素赋予初值,例如:

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

2) 可以只给数组中的一部分元素赋值,例如:

int a[10] = {0, 1, 2, 3, 4};//定义a数组有10个元素,但花括号之提供5个初值,个初值,这表示只给前面5个元素赋初值,系统自动给后5个元素赋初值为0

3) 如果想使一个数组中全部元素值为0,可以写成

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

int a[10] = {0};

4) 在对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不确定数组长度。例如:
int a[5] = {0, 1, 2, 3, 4}; 
可以写成

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

三、怎样定义二维数组

1、 二维数组定义的一般形式

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

float a[3][4];  //定义a3*434列)的数组

2、 怎样引用二维数组的元素

二维数组元素的表示形式为

数组名[下标][下标]

注意:在引用数组元素时,下标值应在已定以的数组大小的范围内

3、 二维数组的初始化

可以用“初始化列表”对二维数组初始化

1) 分行给二维数组赋初值。例如:

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

2) 可以将所有数据写在一个花括号内,将数组元素在内存中的排列顺序对各元素赋初值。例如:

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

   效果与1)相同。但以第1)种方法为好,一行对一行,界限清楚。

3) 可以对部分元素赋初值。例如:

int a[3][4] = {{1}, {5}, {9}};  //它的作用是对各行第一列(即序号为0的列)的元素赋初值,其余元素值自动为0

4) 如果对全部元素都赋初值(即提供全部初始数据),则定义数组时对第1维的长度可以不指定,但第2维的长度不能省。例如:

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

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

四、字符数组

1、 定义:用来存放字符数据的数组。字符数组中的一个元素存放一个字符

2、 字符数组的初始化

对字符数组的初始化,最容易理解的方式是用“初始化列表”,把各个字符依次赋给数组中各元素。例如:

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

3、 怎样引用字符数组中的元素

可以引用字符数组中的一个元素,得到一个字符。

4、 字符串和字符串结束标志

C语言中,是将字符串作为字符数组来处理的。C系统在用字符数组存储字符串常量时会自动加一个’\0’作为结束符

说明:’\0’代表ASCII码为0的字符,从ASCII码表中可以查到,ASCII码为0的字符不是一个可以显示的字符,而是一个“空操作符”,即它什么也不做。

5、 字符数组的输入输出

字符数组的输入输出可以有两种方法

1)  逐个字符输入输出。用格式符”%c”输入或输出一个字符

2)  将整个字符串一次输入或输出。用“%s”格式符,意思是对字符串(string)的输入输出。例如:

char c[] = {China};

printf(“%s\n”, c);

6、 使用字符串处理函数

1) puts函数--输出字符串的函数

其一般形式为

puts(字符数组)

其作用是将一个字符串(以‘\0’结束的字符序列)输出到终端。

2) gets函数--输入字符串的函数

其一般形式为

gets(字符数组)

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

3) strcat函数--字符串连接函数

其一般形式为

strcat(字符数组1, 字符数组2

其作用是把两个字符数组中的字符串连接起来,把字符串2连接到字符串1的后面,结果放在字符数组1中,函数调用后得到一个函数值字符数组1的地址。

4) strcpystrncpy函数--字符串复制函数

其一般形式为

strcpy(字符数组1, 字符串2

其作用是将字符串2复制到字符数组1中去。例如:

char str1[10], str2[] = “China”;

strcpy(str1, str2);

        5) strcmp函数--字符串比较函数

           其一般形式为

           strcmp(字符串1, 字符串2

          其作用是比较字符串1和字符串2

6) strlen函数测字符串长度的函数

其一般形式为

strlen(字符数组)

其作用是测试字符串长度,函数的值为字符串中的实际长度(不包括‘\0’在内)。

7) strlwr函数转换为小写的函数

其一般形式为

strlwr(字符串)

其作用是将字符串中大写字母换成小写字母

8) strupr函数转换为大写的函数。

其一般形式为

strupr(字符串)

其作用是将字符串中小写字母换成大写字母。

阅读(5528) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~