目录
2.strcpy:字符串拷贝函数,用于将字符串2拷贝到字符串1中
3.strcat:字符串连接函数,将字符串2连接在字符串1的后面
数组和字符串(字符数组):
数组是构造数据类型之一,是多个相同数据类型的变量的集合,组成数组的变量被称为数组的元素。
一维数组:
格式:
<存储类型> <数据类型> <数组名> [元素个数]; 例如:int a[5];
int a[3]={1,2,3};
a[0]=1 ---->对应第一个元素,访问时下标从0开始;
a[1]=2 ----->对应第二个元素;
a[2]=3 ----->对应第三个元素;
a[3] X ----->数组越界,访问时超过设置的空间.
注意:1.数组必须先定义以后才能使用
2.数组名是数组的首地址,是地址常量
初始化:
1.全部初始化
int a[3]={1,2,3};
2.部分初始化
int a[3]={1,2};
注意:未初始化的元素初值默认为0
3.未初始化
int a[3];
未初始化的元素值为随机值
冒泡排序:
#include<stdio.h>
int main()
{
int a[]={1,8,3,4,2},t;
for(int i=0;i<4;i++)
{
for(int j=0;j<4-i;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
for (int i = 0; i < 5; i++)
{
printf("%d",a[i]);
}
return 0;
}
运行结果为:12348
一维数组大小:
1.元素个数*数据类型大小
2.利用sizeof()函数计算数组大小
二维数组:
格式:
<存储类型> <数据类型> <数组名> [行数][列数]; 例如:int a[2][3];
int a[2][3]表示有2行3列-----> 例如第二行的4为a[1][2].
初始化(赋值):
1.全部初始化
int a[2][3]={1,2,3,4,5,6}; (直接赋值)
int a[2][3]={{1,2,3},{4,5,6}}; (按行赋值)
2.部分初始化
int a[2][3]={1,2};——>int a[2][3]={1,2,0,0,0,0};
int a[2][3]={{1},{4}};——>int a[2][3]={{1,0,0},{4,0,0};
注意:未初始化的元素初值默认为0
3.未初始化
int a[2][3]={ };
未初始化的元素值为随机值
二维数组大小:
1.行数*列数*数据类型大小
2.利用sizeof()函数计算数组大小
字符串(字符数组):
字符数组是元素的数据类型为字符型(char)的数组。
例如:char a[6]={"hello"};
字符数组的输入输出:
1.利用循环输入输出:
char a[10]={};
//输入
for(int i=0;i<5;i++)
{
scanf("%c",&a[i]);
}
//输出
for(int i=0;i<5;i++)
{
printf("%c",a[i]);
}
2.直接输入输出:
scanf("%s",a);
printf("%s",a);
注意:
输入的字符串不能有空格,scanf遇到空格或‘\n’会结束;
3.利用函数输入输出:
输入字符串:char *gets(char *s)
返回字符数组的首地址
输出字符串个数:int puts(const char *s)
返回输出字符的个数
字符串函数:
1.strlen:求字符串长度函数,用于计算字符串长度
char a[10]={'a','b','\0'}
int i =strlen(a);
printf("%s",a);
printf("%d",i);
输出结果:
ab
2
2.strcpy:字符串拷贝函数,用于将字符串2拷贝到字符串1中
char a[10]={'B'};
char b[2]={'A'};
strcpy(a,b);
puts(a);
输出结果:
A
3.strcat:字符串连接函数,将字符串2连接在字符串1的后面
char a[10]={'B'};
char b[2]={'A'};
strcat(a,b);
puts(a);
输出结果:
BA
4.strcmp:字符串比较函数,比较两个字符串
比较规则:对两串从左向右逐个字符比较 ASCII码,直到遇到不同字符或‘\0’为止
若字符串1> 字符串2, 返回正整数
若字符串1< 字符串2, 返回负整数
若字符串1== 字符串2, 返回零