目录
一.字符数组
1.怎样定义字符数组
2.字符数组的初始化
3.怎样引用字符数组中的一个元素
4.字符数组的输入输出
二.字符串
1.字符串的结束标志
2.用字符串处理函数
strcat函数——字符串连接函数
strcpy函数——字符串复制函数
strcmp函数——字符串比较函数
strlen函数——测字符串长度的函数
总结
一.字符数组
1.怎样定义字符数组
用来存放字符数据的数组是字符数组,在字符数组中的一个元素存放一个字符
定义字符数组的方法与定义数值型数组的方法类似
char a[10];
2.字符数组的初始化
char a[10]={'I',' ','a','m',' ','h','a','p','p','y'};
把十个字符依次赋给a[0]~a[9];
3.怎样引用字符数组中的一个元素
输出一个已知的字符串
#include<stdio.h>
int main(){
char a[10]={'i',' ','a','m',' ','h','a','p','p','y'};
int i;
for(i=0;i<10;i++)
printf("%c",a[i]);
printf("\n");
return 0;
}
运行结果:
i am happy
4.字符数组的输入输出
字符数组的输入输出有两种方法
(1)逐个字符输入输出,用格式符“%c”输入或输出一个字符,如上图所示
(2)将整个字符串一次输出或输出,用格式符“%s”意思是对字符串(string)的输入输出,如下所示
char c[ ]="China";
printf("%s",c);
二.字符串
在C语言中,是将字符串作为字符数组来处理的,比如上面的例子就是用一个一维字符数组来存放字符串“i am happy”的,字符串中的字符是逐个存放到数组元素中的
1.字符串的结束标志
为了测定字符串的实际长度,C语言规定了一个“字符串的结束标志”,以字符'\0'作为结束标志
'\0'代表ASCII码为0的字符,它不是一个可以显示的字符,而是一个空操作符,即什么也不做,只起到一个供辨识的标志
在输出字符数组的字符串时,遇到'\0'就停止输出
char c[ ]="China"; 等价于 char c[ ]={'C','h','i','n','a','\0'};两者的长度都是6
2.用字符串处理函数
在C函数库中提供了一些专门处理字符串的函数,使用方便,这里列举了一些常用的函数
使用这些函数的前提是必须要在程序的开头添加头文件#include<string.h>
strcat函数——字符串连接函数
strcat(字符数组1,字符数组2) 字符数组1必须足够大,以便容纳新的字符
char str1[15]={"Hello"};
char str2[]={"World"};
printf("%s",strcat(str1,str2));
输出结果:
HelloWorld
strcpy函数——字符串复制函数
strcpy(字符数组1,字符串2) 将字符串2复制到字符数组1中
char str1[10];
char str2[]="China";
strcpy(str1,str2);
str1变为"China"
字符数组1的长度不应小于字符串2的长度
strcmp函数——字符串比较函数
strcmp(字符串1,字符串2)
strcmp("China","Korea");
字符串比较规则:将两个字符串自左向右逐个字符相比较(按ASCII码值大小比较),直到出现不同的字符或遇到'\0'为止
比较的结果由函数值返回
(1)如果字符串1与字符串2相同,则函数值为0
(2)如果字符串1>字符串2,则函数值为一个正整数
(3)如果字符串1<字符串2,则函数值为一个负整数
strlen函数——测字符串长度的函数
strlen(字符数组)
函数的值是字符串中的实际长度(不包括'\0'在内)
char str[10]="China";
printf("%d",strlen(str));
输出结果不是10,也不是6,而是5
也可以直接测量字符串的长度:strlen("China");
总结
字符串结尾标记'\0'
使用字符串函数时应注意头文件#include<string.h>
strlen函数遇到'\0'停止