目录

一.字符数组

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'停止