一维数组,二维数组,字符数组,字符串常用函数。
1.数组:一组有序数据的集合。
同一数组中每个元素的数据类型(int long short double float char...)必须相同。
2.定义一维数组(int a;)
一般形式:数据类型 数组的名称[常量表达式]
例如:int a[10];
- 定义了一个整型数组,数组中每一个元素都是整数类型。
- a是数组名称,表示数组首元素的内存地址,a是常量。
- 10表示数组中有10个元素,数组的第一个元素下标是从0开始。
- 会在内存中开辟连续的10个空间存放整型数值。
#include<stdio.h>
int main(){
int a[10];
int b;
printf("%d\n",sizeof(b));
printf("%d\n",sizeof(a));
printf("%d\n",a);
printf("%d\n",&a[0]);
printf("%d\n",&a[1]);
printf("%d\n",a+1);
printf("---------\n");
for(int i=0;i<=9;i++){
printf("%d\n",&a[i]);
}
printf("---------\n");
for(int i=0;i<=9;i++){
printf("%d\n",a+i);
}
return 0;
}
一维数组的初始化
1.对数组中每一个元素进行赋值。
int a[10]={1,2,3,4,5,6,7,8,,91};
2.对数组中的部分元素赋值,没有赋值的元素默认值为0(int long short),0.0(float double)
int a[10]={1,2,3,4,5,6};
注意:如果int a[10]
;a[0]=1
;a[1]=2
;数组没有赋值的元素是不确定的值。
3.定义一个全0的数组
int a[10]={0}
;
4.对数组中的元素赋值,省略定义数组时的元素个数。
int a[]={1,2,3,4,5,6,7,8,9,0}
;
二维数组的定义:
一般形式:数据类型 数组名称常量
例如:int a[5][5]
- 定义了一个整型二维数组,数组中的每一个元素都是整型。
- a表示数组名称,表示首行元素的地址,a是常量。
- 数组有5行,5列,二维数组行、列的下标是从0开始的。
- 数组的每一个元素在内存中都是按行连续存放的。
二维数组的初始化:
1.分行给二维数组赋值
int a[3][4]={{1,2,3,4},{4,3,2,1},{5,6,7,8}};
2.将每个元素写在一个花括号内
int a[3][4]={1,2,3,4,4,3,2,1,5,6,7,8};
int a[3][4]={1,2,3,4,4,3,2,1,5,6};
3.对部分元素赋值
int a[3][4]={{1},{4,3},{5}}
;没有赋值的元素默认为0.
4.如果对二维数组赋值,行值可以省略,列值不能省略。
int a[][4]={1,2,3,4,4,3,2,1,5,6};
5.定义全0数组
int a[3][4]={0};
字符数组
数组的每一个元素都是字符
字符串:
结束符:‘\0’
c语言规定用字符‘\0’
作为字符串结束的标志。通过字符数组定义字符串时,系统会自动地在字符串的末尾加‘\0’
例:printf("hello world")
;系统会在这个字符串末尾添加‘\0’
,这个字符串占13个字节。
字符串的输入方式:
#include<stdio.h>
int main(){
char str[10],str2[10],str3[10];
scanf("%s%s%s",str1,str2,str3);
printf("str1=%s,str2=%s,str3=%s",str1,str2,str3);
return 0;
}
输入字符串时,要通过空格或回车来区分每个字符串。
字符串常用函数:
1.字符串输出函数:puts()
s--->string
2.字符串输入函数:gets()
3.字符串连接函数strcat(字符串1,字符串2)
;
功能:将字符串2拼接到字符串1的后面。
4.字符串的复制函数:strcpy(字符串1.字符串2)
;
功能:将字符串2复制到字符1重
5.计算字符串的实际长度(int):strlen()
例:printf("str1=%d\n",strlen(str1))
;
6.将字符串转化为全小写:strlwe()lowercase
7.将字符串转化为全大写:strupr()uppercase
8.字符串比较函数:strcmp(字符串1,字符串2)
功能:比较俩个字符串的大小。
返回0----字符串相等 返回1----字符串1>字符串2 返回-1----字符串1<字符串2
比较规则:
①:按照字典的顺序确定字符串的大小,越往后越大a<b;
②:小写字母>大写字母 a>A;
③:如果字符串出现不相同的字符,以第一个不相同的字符进行比较。