C/C++中的库函数提供了字符串处理函数,但是在我们使用的时候需要添加 ———#include<string.h>就可使用这些处理函数了。
1、测字符串长度函数----strlen(字符数组)
这个函数的功能是:计算指定字符串的实际长度(但是不包含我们的字符串结束标志‘\0’),并且返回字符串的长度。
#include<stdio.h>
#include<string.h>
void main()
{ char str1[11]="hello";
char str2[12]="worldo\0!";
printf("%d\n",strlen(str1));
printf("%d\n",strlen(str2));
}
我们运行这串代码可以发现,两者的长度相差1,因为在C语言中‘\0’是字符串结束的标志。在这之后的所有字符系统都不会读取。
2.字符串连接函数----strcat(字符数组1,字符数组2)
字符串连接函数的功能:把数组2中的字符串连接到数组1中存放的字符串尾部,同时删掉字符串1的尾部‘\0’,从而组成一个新的字符串,并再次存入字符数组1中,该函数的返回值是字符数组1的首地址(str1),但是我们需要注意的是,这个数组1要足够大。
字符串连接函数在VS的使用:
#include<stdio.h>
#include<string.h>
void main()
{
char str1[12]="hello";
char str2[7]="world";
strcat(str1,str2);
printf("%s",str1);}//这里也开可以使用puts(str1);
需要我们注意的是,数组1在定于的时候要把连接在后面的空间留的足够大,以保证能够存下数组2的字符串。
3.字符串比较函数----strcmp(字符数组1,字符数组2)
字符串比较函数的功能:按照从左到右的顺序依次比较数组1和数组2的对应的ASCII值,之后再返回比结果。
(1):字符串1=字符串2 , 返回0
(2):字符串1>字符串2 ,返回大于0的数。
(3):字符串1>字符串2 , 返回小于0的数。
接下来我们看看字符串函数比较的使用:
#include<sdtio.h>
#include<string.h>
void main()
{
int n;
char str1[6],str2[6];
printf("piease input a str1:");
scanf_S("%s",&str1);//gets(str1);
printf("piease input a str2:");
scanf_S("%s",&str2);//gets(str2);
n=strcmp(str1,str2);
if(n==0) printf("str1=str2\n");
if(n>0) printf("str1>str2\n");
if(n<0) printf("str1<str2"\n);
}
上述代码的运行效果:
input a str1 :china
input a str2 : chinese
str1<str2