数组
一维数组
|
定义 |
长度 |
内容 |
备注 |
|
int a[5]={0,1,2,3,4} |
5 |
{0,1,2,3,4} |
定义全部元素 |
|
int a[5]={0} |
5 |
{0,0,0,0,0} |
只用于元素全为0 |
|
int a[]={0,1,2,3,4} |
5 |
{0,1,2,3,4} |
自动确定数组长度 |
|
int a[5]={0,1,2} |
5 |
{0,1,2,0,0} |
定义部分元素 |
二维数组
定义全部元素:
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12};
这三种方法是等价的,但第一种方法可读性高。
定义部分元素:
int a[3][4]={{1},{5},{9}};第一列三个元素为1,5,9;
int a[3][4]={{1},{0,6}};第一行第一个元素为1第二行前两个元素为0和6;
int a[3][4]={{1},{},{6}};第一行第一个元素为1第三行第一元素为6;
int a[][4]={{0,0,3},{},{0,10}};数组各元素为:0 0 3 0
0 0 0 0
0 10 0 0
字符数组
char c[]={‘I’,‘ ’,‘a’,‘m’,‘ ’,‘h’,‘a’,‘p’,‘p’,‘y’};自动确定数组长度为10;
char c[]=“I am happy”;或char c[]={“I am happy”};
自动确定数组长度为11,添加了空字符\0;
在输出字符%c时空格和‘\0’都是空格,在输出字符串%s时两者不同。
字符串函数
puts(字符数组);
将一个字符串(以‘\0’为结束的字符序列)输出到终端并换行。
gets(字符数组);
从终端输入一个字符串到字符数组,并且得到一个函数值,该函数值是字符数组的起始地址,一般用于输入字符串不太关心函数值。
gets函数与scanf函数:
gets函数可输入空格,scanf不行,但连续输入空格会输入到第二个字符串使第二个字符串无法输入,不过两个函数输入回车键都不影响输入。
注意:puts和gets函数一次只能输出和输入一个字符串不能写成puts(a,b);或gets(a,b);
string.h中的函数:
strcat(字符数组1,字符数组2);
strcat是string catenate的缩写。
作用是把字符数组2连接到字符数组1后面,结果放在字符数组1中,返回函数值为字符数组1的地址。
eg:char str[30]={“People’s Republic of”};
printf(“%s”,strcat(str,“China”));
输出结果:People’s Republic China
注意:字符数组1必须足够大容纳新字符串。
strcmp(字符串1,字符串2);
strcmp是string compare的缩写。
作用是比较两个字符串。
若字符串1与字符串2相同则返回0;
若字符串1>字符串2则返回一个正数;
若字符串1<字符串2则返回一个负数。
strcpy(字符串数组1,字符串2);
strcpy是string copy的缩写。
作用是将字符串2复制到字符数组1中去。
注意:
(1)其中“字符串数组1”必须写成数组名形式,“字符串2”可以是字符数组名,也可以是一个字符串常量。
(2)如果在复制前未对str1数组初始化或赋值,则str1各字节中的内容无法预知,复制时将字符串2中的字符串和其后的‘\0’一起复制到字符数组1中,而后面的字符不一定是‘\0’,而是字符数组1原有的内容。
strncpy(字符串数组1,字符串2,复制长度n);
作用是将字符串2中前n个字符复制到字符数组1中取代最前面n个字符。复制个数n不应多于字符串数组1长度(不包括‘\0’)。
strlen(字符数组);
strlen是string length的缩写
作用是返回字符数组长度(不包括‘\0’在内)。
strlwr(字符串);
strlwr是string lowercase的缩写
作用是将字符串中大写字母换成小写字母。
strupr(字符串);
strupr是string uppercase的缩写
作用是将字符串中小写字母换成大写字母。

浙公网安备 33010602011771号