一、一维数组的定义与初始化
1、格式:数据类型 数组名[常量表达式]={初值1,初值2,·······};
例:
float mark[100];
char str[200];
int a[4][6];
注意:
(1)几个概念:
• 数组名
• 数组长度
• 数组下标运算符
• 数组维数
• 数组的基类型
(2)数组元素的下标从 0开始! 最大下标是元素个数-1。
例:
int a[5]={1,2,3,4,5};说明:数组a有5个数组元素,分别是a[0],a[1],a[2],a[3],a[4].
int a[5]={1,2}; 说明:将数组a的前2个数组元素分 别赋值为1,2.其余元素初始化为0。
int a[ ]={1,2,3,4}; 说明:数组a的大小根据元素数确
二、一维数组的输入输出
1、对数组中任意元素的独立访问 对整个数组的访问。
//输入
for(int i =0;i<N;i++){
scanf("%d",&a[i]);
}
2、可以对数组中任何一个元素 进行单独的输入输出,每个 元素等同于一个普通变量。对数组整个元素进行 输入输出时,可以按 下标控制,也可以整 体操作。
例:
chara[20];
scanf(“%s”,a);
printf(“%s”,a);
三、一维数组处理字符串(字符串处理函数)
1、输入输出字符串
(1)输入字符串
gets(字符数组名)
功能:由终端输入字符串到字符数组,以换行结束, 返回字符数组的首地址。
(2)输出字符串
puts(字符数组名)
功能:将以\0结束的字符串输出到终端, 返回的 函数值是字符数组的首地址。
2、strlen函数,计算长度
(#include <string.h>)
函数介绍
函数原型:
size_t strlen ( const char * str );
str:要计算长度的字符串的指针。
strlen函数是一个用于计算字符串长度的函数,它从指定的字符串起始位置开始,逐个字符地计算,直到遇到字符串结尾的 \0 为止。它返回的是字符串中\0之前的字符个数,不包括\0。
关于strlen需要注意以下几点:
参数指向的字符串必须要以 \0结束,否则strlen求得的结果是未知的。
注意函数的返回值为size_t,是无符号的( 易错)。
char str = "Hello World!";
len = strlen(str);
printf("字符串长度:%d\n", len);
3、strcpy()函数
C 库函数 strcpy(dest, src) 把 src 所指向的字符串复制到 dest。
需要注意的是如果目标数组 dest 不够大,而源字符串的长度又太长,可能会造成缓冲溢出的情况。
参数
- dest -- 指向用于存储复制内容的目标数组。
- src -- 要复制的字符串。
例子:
源代码:
#include <stdio.h>
#include <string.h>
int main ()
{
char str1[]="Sample string";
char str2[40];
char str3[40];
strcpy (str2,str1);
strcpy (str3,"copy successful");
printf ("str1: %s\nstr2: %s\nstr3: %s\n",str1,str2,str3);
return 0;
}
结果:
str1: Sample string
str2: Sample string
str3: copy successful
4、函数 strcat ()
它的功能是将两个字符串连接(拼接)起来。
函数原型和参数
strcat () 函数的原型如下:
char *strcat (char *dest, const char *src);
函数功能和用法
strcat () 函数的功能是将源字符串 src 所指向的字符串追加到目标字符串 dest 所指向的字符串的结尾。例如,如果 dest 指向的字符串是 “Hello”,src 指向的字符串是 “World”,那么执行 strcat (dest, src) 后,dest 指向的字符串就变成了 “HelloWorld”。
5、字符串函数 strcmp ()
它的功能是将两个字符串进行比较。
函数原型和参数
strcmp () 函数的原型如下:
int strcmp (const char *str1, const char *str2);
函数功能和用法
strcmp () 函数的功能是将两个字符串进行比较,根据 ASCII 编码依次比较 str1 和 str2 的每一个字符,直到出现不同的字符,或者到达字符串末尾(遇见 ‘\0’)。如果返回值小于 0,则表示 str1 小于 str2;如果返回值大于 0,则表示 str1 大于 str2;如果返回值等于 0,则表示 str1 等于 str2。例如,如果 str1 指向的字符串是 “abc”,str2 指向的字符串是 “abd”,那么执行 strcmp (str1, str2) 后,返回值是 -1,表示 str1 小于 str2。
四、二维数组的定义和使用
1、二维数组定义: 数据类型 数组名[常量表达式1][常量表达式2];
• 对数组中的部分元素初始化
int a [2][3]={{1,2},{4}}; //a[0][0]=1,a[0][1]=2;a[1][0]=4其余元素被初始化为0
int a [2][3]={1,2}; //若未指定分行,则按行序依次初始化
• 初始化时可以省略第一维下标—仅对数组全部元素初始化时。
int a [][3]={1,2,3,4,5,6}; //a[0][0]=1,a[0][1]=2;a[1][0]=4其余元素被初始化为0,C根据初始化数据的数量,自动确定第 1维的大小。