2.8.4 常用字符串处理函数(2)
5. 字符串比较函数strcmp
格式:
- strcmp(字符数组名1, 字符数组名2);
功能:按ASCII码值的大小逐个比较两个字符串数组中的各个字符,直到出现不同的字符或遇到‘\0’为止。函数的返回值有以下3 种情况:
字符串1=字符串2,返回值为0。
字符串1>字符串2,返回值为一正整数。
字符串1<字符串2,返回值为一负整数。
strcmp函数也可用于比较两个字符串常量,或比较数组和字符串常量,如程序2.22。
【程序 2.22】比较两个字符串的大小:test22.c。
- #include <string.h> /*字符串处理函数头文件*/
- main()
- {
- int k;
- static char st1[15],st2[]="abcd"; /*定义两个字符串数组*/
- printf("input a string: ");
- gets(st1); /*输入字符串st1*/
- k=strcmp(st1,st2); /*比较字符串st1 和st2*/
- if(k==0) printf("st1=st2\n"); /*比较结果*/
- if(k>0) printf("st1>st2\n");
- if(k<0) printf("st1<st2\n");
- }
程序运行结果如下(↙表示回车):
- input a string: abck↙
- st1>st2
本程序中把输入的字符串和数组st2 中的字符串比较,比较结果返回给变量k,根据k值再输出比较结果。
6. 求字符串长度函数strlen
格式:
- strlen(字符数组名);
功能:求字符串的实际长度(不含字符串结束标志‘\0’),并作为函数返回值,如程序2.23。
【程序 2.23】验证strlen函数的功能:test23.c。
- #include <string.h> /*字符串处理函数头文件*/
- main()
- {
- int k;
- static char str[]="abcde";
- k=strlen(str); /*求字符串str 的长度*/
- printf("The lenth of the string is %d\n",k);
- }
程序运行结果如下:
- The lenth of the string is 5
可以看到,求取字符串的长度时,是指字符串的实际长度,并不包含在内存中自动添加的字符串结束标识符‘\0’。