一:一维数组
类型名:基本数据类型或者构造数据类型;
数组名:自行定义的标识符;
常量表达式:值必须大于1,表示数组的长度,即数组中包含的元素个数;
a【2】的第一个元素用a【0】表示;
例题1:依次读取数组元素值赋值给a,并将其倒序输出;
依次读取,就需要借用循环,让电脑依次读取数据并赋值给相应的数组元素,直到输入size数字(此处定义其为10);
#include
#define SIZE 10
int main(){
int i,a[SIZE];
for(i=0;i
让其倒叙输出就需要利用循环从a【SIZE-1】开始输出逐个输出直至输出a【0】(数组长度为SIZE,第一个元素从a【0】开始计数】;
for(i=SIZE-1;i>=0;i--){
printf("%d",a[i]);
while(i>0){
printf(" ");
}
int a[3][5]:数组a含有三个数组元素,每个数组元素含有五个int型元素
int a[3][3];
for(i=0;i<3;i++){
for(j=0;j<3;j++){
scanf("%d",&a[i][j]);
}
}
先进行赋值:
int a[3][3];
int i,j;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
scanf("%d",&a[i][j]);
}
逐个访问将交换前的数组读出:
printf("before\n");
for(i=0;i<3;i++){
for(j=0;j<3;j++){
printf("%5d",a[i][j]);
}
printf("\n");
数组交换将a[i][j]和a[j][i]的值交换(以中间变量作为媒介),而i=j则不需要交换;
防止交换两次导致数值没有改变,可以使j<=i;
for(i=0;i<3;i++){
for(j=0;j<=i;j++){
if(i!=j){
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
}
}
最后逐个读出:
printf("after\n");
for(i=0;i<3;i++){
for(j=0;j<3;j++){
printf("%5d",a[i][j]);
}
printf("\n");
}
char a[3]={'a','b'},最后一个数组元素没有定位,自动赋值‘\0';
(1)scanf()函数,%s可以读取字符串(注意输入内容不要过长)
(2)gets()函数可以输入空格
(1)printf()函数:输出时遇到结束符’\0'停止;
遇到“\0”时自动结束输出(以遇到的第一个“\0”为准,后面的字符不再输出)
char a[7]={'h','e','l','\0','l','o','\0'};
puts("%s",a[7]);
输出的值就是hel
(2)puts()函数:遇到空字符时停止输出
例题:输入一行字符串,统计该字符串的实际长度,并将该字符串复制到另一个数组中
先定义两个数组(不确定数组的长度,尽量定义数组长度较长)
#include
#define LENGTH 100
int main(){
char src[LENGTH],des[LENGTH];
gets(src);
加入计数器,统计长度(利用for语句的空循环,直到遇到’\0‘时停止)
完成计数以后将数组src逐个赋值给数组des
int i=0;
int a;
for(i=0;src[i]!='\0';i++);
printf("长度是%d\n",i);
for(a=0;a
函数原型在头文件string.h中
(1)strlen()函数:统计字符串长度
strlen(str)、strlen(“abcdef”)【这两种形式都可以(str是一个已经被赋值或者定义的字符数组)】
(2)strcpy()和strncpy()函数
字符型数组和和数值型数组一样不能整体赋值和复制,只能逐个赋值或者复制
strcpy()函数可以实现复制整个字符:strcpy(字符数组1,字符串2),将字符串2整体赋值给字符数组1
strcpy()函数不会检查目标空间是否足够容纳字符串,而strncpy()可以指定复制的最大长度
strncpy()函数:strcpny(字符数组1,字符串2,最大长度)
char str[20],str2[20]="hello world";
strncpy(str.str2,5);
str[5]='\0';
puts(str);
结果就是hello(定义了复制的最大长度是5);
(3)strcat()函数:strcat(字符数组1,字符串2),将字符串2连接到字符数组1后面
该函数不会检查字符数组1连接字符串2之后空间是否足够,应保证长度足够防止越界
char str[20]="good",str2[20]="morning";
strcat(str,str2);
printf("%s",str);
结果就是good morning
(4)strcmp()函数:strcmp(字符串1,字符串2),用于比较两个字符串的大小
相同返回0;1>2返回一个正整数;1<2返回一个负整数