语法:
数据类型 数组名[数组长度]
解释说明:
例子:
int a[10];
数组的初始化分为两种,一种为全部元素初始化,一种为部分元素初始化。详见下图:
字符型数组是:据类型为字符型的数组,可用于存储字符串,每一个元素存放一个字符常量。
对字符数组初始化时,可使用"\0"作为末尾元素值,存储字符串
char str[4]={'s','i','x','\0'};
也可以使用一个字符串常量为字符数组进行初始化,系统自动在字符串尾部增加一个结束标志’\0’
char str[4]='six';
如上,数组str的长度为4,内部占用5个字节空间。
数组元素的下标从0开始,当数组长度为n时,最末元素的下标是-1。
char str[4]的全部元素:str[0]、str[1]、str[2]、str[3]。
数组的输入和输出代码如下:
char str[4];
// 对第一个数组元素进行赋值
scanf("%c", &str[0]);
// 取第一个数组元素的值
printf("%c", str[0]);
strcat(s1,s2):字符串拼接
strcpy(s1,s2) : 字符串复制
两个函数使用案例如下:
#include
#include
void main(){
char s1[20] = "include", s2[10] = "stdio", s3[5] = "hi";
printf(" The origin s1: %s\n", s1);
printf(" The origin s2: %s\n", s2);
printf(" The origin s3: %s\n", s3);
printf(" The s2 and s3 : %s\n", strcat(s2, s3));
// 进行拷贝
strcpy(s1, s3);
printf(" The s1: %s\n", s1);
printf(" The s2: %s\n", s2);
printf(" The s3: %s\n", s3);
for (int i = 0; i < 20; i++){
printf("%c ", s1[i]);
if (i == 19) printf("\n");
}
}
strcmp(s1,s2) :比较字符串s1和字符串s2的大小。
会自左至右逐个字符串比较字符串中个字符的ASCII码,遇到不同字符或’\0’时比较过程结束,此时,ASCII码值大的字符所在的字符串大。
该函数会返回一个数值.
strlwr(s):将大写转为小写
strupr(s):将小写转为大写
strlen(s): 求字符串的长度
语法:
数据类型 数组名[表达式1][表达式2]:
以下形式都是正确的定义:
int a[3][5];
int b[][3];
int a[2][3]={{1,2,3},{4,5,6}};
int a[2][3]={{1,2,3},{4}}; //实际为1,2,3 4,0,0
int a[2][3]={1,2,3,4,5,6};
int a[2][3]={1,2,3}; //实际为1,2,3 0,0,0
int a[][4]={{1},{2,3}}; //实际为1,0,0,0 2,3,0,0
int a[][3]={1,2,3,4,5,6,7} //实际为1,2,3 4,5,6 7,0,0
将Fibonacci数列的前20项存储于一维数组,并输出
#include
#define N 20
void main(){
long int fib[N];
int i;
fib[0] = fib[1] = 1;
for(i = 2; i < N; i++){
fib[i] = fib[i - 1] + fib[i - 2];
}
for(i = 0; i < N; i++){
printf("%-10ld", fib[i]);
if ((i + 1) % 5 == 0) printf("\n");
}
}
#include
#include
void main(){
char s1[20] = "include", s2[10] = "stdio", s3[5] = "hi";
printf(" The origin s1: %s\n", s1);
printf(" The origin s2: %s\n", s2);
printf(" The origin s3: %s\n", s3);
printf(" The s2 and s3 : %s\n", strcat(s2, s3));
// 进行拷贝
strcpy(s1, s3);
printf(" The s1: %s\n", s1);
printf(" The s2: %s\n", s2);
printf(" The s3: %s\n", s3);
for (int i = 0; i < 20; i++){
printf("%c ", s1[i]);
if (i == 19) printf("\n");
}
}
实现完整C代码如下:
#include
# define N 6
void main(){
int yh[N][N], i, j;
for (i = 0; i < N; i++){
yh[i][0] = 1;
yh[i][i] = 1;
};
for (i = 2; i < N; i++){
for (j = 1; j < i ; j++){
yh[i][j] = yh[i - 1][j - 1] + yh[i - 1][j];
}
}
for (i = 0; i < N; i++){
for (j = 0; j <= i; j++){
printf("%5d", yh[i][j]);
}
printf("\n");
}
}