数组
一、一维数组
1、类型说明符 数组名[常量表达式];
例如:int a[10];它表示定义了一个整形数组,数组名为a,有10个元素。
在定义数组时,需要指定数组中元素的个数,方括弧中的常量表达式用来表示元素的个数,即数组长度。
C语言不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。
2、每个数据元素占用的字节数,就是基类型的字节数一个元素占4个字节
3、给一维数组赋值时,可以全部赋值,也可部分赋值,其他都为0;当想使一个数组全部元素为0时可以int a[10]={0};
4、当给全部元素赋值时,可以不写数组长度 int a[]={1,2,3,4,5};
5、数组的输入输出可以用for循环
6、冒泡排序!!!
二、二维数组
1、二维数组定义的一般形式为:
类型说明符 数组名[常量表达式][常量表达式];
例如:
定义a为3×4(3行4列)的数组,b为5×10(5行10列)的数组。如下:float a[3][4],b[5][10]
2、
a[0][0] a[0][1] a[0][2]
a a[1][0] a[1][1] a[1][2]
a[2][0] a[2][1] a[2][2]
3、4种方法初始化二维数组
1.分行给二维数组赋值 int a[3][4]={{1,2,3},{4,5,6}...};
2.可以把所有数据卸载一个大括号里 int a[3][4]={1,2,3,4,5...};
3.对部分元素赋值 int a[3][4]={{1},{2,3}...};
4.对全部元素赋值时,可以省略第一维长度 int a[][4]={1,2,3,4,5,6,7,8};
三、字符数组
1、例如:char c[10];c[0]='I';c[1]=' ';c[2[='a';c[3]='m';c[4]=' ';c[5]='h';c[6]='a';c[7]='p';c[8]='p';c[9]='y';
2、对字符数组初始化,可逐个字符赋给数组中各元素。
例如:char c[10]={‘I’,‘’,‘a’,‘m’,‘’,‘h’,‘a’,‘p’,‘p’,‘y’}
3、 为了测定字符串的实际长度,C语言规定了一个“字符串结束标志”——‘\0’
4、字符数组的输入输出可以有两种方法:
1.逐个字符输入输出。用格式符“%c”输入或输出一个字符。
2.将整个字符串一次输入或输出。用“%s”格式符,意思是对字符串的输入输出。
5、用“%s”格式符输入输出字符串时,scanf,printf函数中的输出项是字符数组名,而不是数组元素名。
6、如果利用一个scanf函数输入多个字符串,则在输入时以空格分隔。
7、puts(str)函数
将一个字符串(以'\0'结束的字符序列)输出到终端。
用puts函数输出的字符串中可以包含转义字符。
在输出时,将字符串结束标志'\0'转换成'\n',即输出完字符串后换行。
8、gets(str)函数
其作用是从终端输入一个字符串到字符数组,并且得到一个函数值。该函数值是字符数组的起始地址。
9、fgets(a,10,stdin)
a存放字符串的数组,10读入字符的最大数量,stdin标准输入能读入空格,也能按设定截断字符串
10、fputs(a,stdout)
a要输出的字符数组,stdout标准输出
11、strcat(字符数组1,字符数组2)
strcat的作用是连接两个字符数组中的字符串,把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后得到一个函数值——字符数组1的地址。
12、strcpy(字符数组1,字符串2)
strcpy是“字符串复制函数”。作用:是将字符串2复制到字符数组1中去。
字符数组1必须定义得足够大,以便容纳被复制的字符串。字符数组1的长度不应小于字符串2的长度。
13、strcmp(字符串1,字符串2)
strcmp的作用是比较字符串1和字符串2。
如果字符串1=字符串2,函数值为0。
如果字符串1>字符串2,函数值为一正整数。
如果字符串1<字符串2,函数值为一负整数。
14、strlen (字符数组)
strlen是测试字符串长度的函数。函数的值为字符串中的实际长度(不包括'\0'在内)。
一、一维数组
1、类型说明符 数组名[常量表达式];
例如:int a[10];它表示定义了一个整形数组,数组名为a,有10个元素。
在定义数组时,需要指定数组中元素的个数,方括弧中的常量表达式用来表示元素的个数,即数组长度。
C语言不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。
2、每个数据元素占用的字节数,就是基类型的字节数一个元素占4个字节
3、给一维数组赋值时,可以全部赋值,也可部分赋值,其他都为0;当想使一个数组全部元素为0时可以int a[10]={0};
4、当给全部元素赋值时,可以不写数组长度 int a[]={1,2,3,4,5};
5、数组的输入输出可以用for循环
6、冒泡排序!!!
二、二维数组
1、二维数组定义的一般形式为:
类型说明符 数组名[常量表达式][常量表达式];
例如:
定义a为3×4(3行4列)的数组,b为5×10(5行10列)的数组。如下:float a[3][4],b[5][10]
2、
a[0][0] a[0][1] a[0][2]
a a[1][0] a[1][1] a[1][2]
a[2][0] a[2][1] a[2][2]
3、4种方法初始化二维数组
1.分行给二维数组赋值 int a[3][4]={{1,2,3},{4,5,6}...};
2.可以把所有数据卸载一个大括号里 int a[3][4]={1,2,3,4,5...};
3.对部分元素赋值 int a[3][4]={{1},{2,3}...};
4.对全部元素赋值时,可以省略第一维长度 int a[][4]={1,2,3,4,5,6,7,8};
三、字符数组
1、例如:char c[10];c[0]='I';c[1]=' ';c[2[='a';c[3]='m';c[4]=' ';c[5]='h';c[6]='a';c[7]='p';c[8]='p';c[9]='y';
2、对字符数组初始化,可逐个字符赋给数组中各元素。
例如:char c[10]={‘I’,‘’,‘a’,‘m’,‘’,‘h’,‘a’,‘p’,‘p’,‘y’}
3、 为了测定字符串的实际长度,C语言规定了一个“字符串结束标志”——‘\0’
4、字符数组的输入输出可以有两种方法:
1.逐个字符输入输出。用格式符“%c”输入或输出一个字符。
2.将整个字符串一次输入或输出。用“%s”格式符,意思是对字符串的输入输出。
5、用“%s”格式符输入输出字符串时,scanf,printf函数中的输出项是字符数组名,而不是数组元素名。
6、如果利用一个scanf函数输入多个字符串,则在输入时以空格分隔。
7、puts(str)函数
将一个字符串(以'\0'结束的字符序列)输出到终端。
用puts函数输出的字符串中可以包含转义字符。
在输出时,将字符串结束标志'\0'转换成'\n',即输出完字符串后换行。
8、gets(str)函数
其作用是从终端输入一个字符串到字符数组,并且得到一个函数值。该函数值是字符数组的起始地址。
9、fgets(a,10,stdin)
a存放字符串的数组,10读入字符的最大数量,stdin标准输入能读入空格,也能按设定截断字符串
10、fputs(a,stdout)
a要输出的字符数组,stdout标准输出
11、strcat(字符数组1,字符数组2)
strcat的作用是连接两个字符数组中的字符串,把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后得到一个函数值——字符数组1的地址。
12、strcpy(字符数组1,字符串2)
strcpy是“字符串复制函数”。作用:是将字符串2复制到字符数组1中去。
字符数组1必须定义得足够大,以便容纳被复制的字符串。字符数组1的长度不应小于字符串2的长度。
“字符数组1”必须写成数组名形式(如str1),“字符串2”可以是字符数组名,也可以是一个字符串常量。
复制时连同字符串后面的′\0′一起复制到字符数组1中。
可以用strcpy函数将字符串2中前面若干个字符复制到字符数组1中去。 strncpy(str1,str2,2)将str2中前面2个字符复制到str中去,然后再加一个'\0'。13、strcmp(字符串1,字符串2)
strcmp的作用是比较字符串1和字符串2。
如果字符串1=字符串2,函数值为0。
如果字符串1>字符串2,函数值为一正整数。
如果字符串1<字符串2,函数值为一负整数。
14、strlen (字符数组)
strlen是测试字符串长度的函数。函数的值为字符串中的实际长度(不包括'\0'在内)。