(standard c libraries translation )strcmp家族

来源:互联网 发布:天刀包子脸捏脸数据 编辑:程序博客网 时间:2024/04/29 06:47
strcmp, strncmp - compare two strings
strcmp,strncmp-比较两个字符串

所需头文件
#include <string.h>
int strcmp(const char *s1, const char *s2);
int strncmp(const char *s1, const char *s2, size_t n);

The  strcmp()  function  compares  the  two strings s1 and s2.  It returns an integer less than, equal to, or greater than zero if s1 is found, respectively, to be less than, to match, or be greater than s2.
The strncmp() function is similar, except it only compares the first (at most) n bytes of s1 and s2.
strcmp()函数比较s1和s2两个字符串,返回一个整数小于,等于,大于0,如果s1是逐个小于,等于,大于s2的。
strncmp()函数类似,不过只比较s1和s2的前n个字节


strcasecmp, strncasecmp - compare two strings ignoring case
strcasecmp,strncasecmp-忽略大小写比较两个字符串

所需头文件
#include <strings.h>
int strcasecmp(const char *s1, const char *s2);
int strncasecmp(const char *s1, const char *s2, size_t n);

The  strcasecmp()  function  compares  the  two  strings s1 and s2, ignoring the case of the characters.  It returns an integer less than, equal to, or greater than zero if s1 is found, respectively, to be less than, to match, or be greater than s2.
The strncasecmp() function is similar, except it only compares the first n bytes of s1.
strcasecmp()函数比较s1和s2两个字符串,忽略字符的大小写,返回小于,等于,大于0,如果s1是逐个小于,等于,大于s2的。

strncasecmp()函数类似,不过只比较s1和s2的前n个字节


testcase如下:

#include <stdio.h>#include <string.h>int main(void){int ret;char *s1 = "abcxx";char *s2 = "abCyy";ret = strcmp(s1, s2);printf("ret = %d\n", ret);ret = strncmp(s1, s2, 2);printf("ret = %d\n", ret);ret = strcasecmp(s1, s2);printf("ret = %d\n", ret);ret = strncasecmp(s1, s2, 3);printf("ret = %d\n", ret);return 0;}

测试结果如下:

cheny.le@cheny-ThinkPad-T420:~/cheny/testCode$ ./a.out
ret = 32
ret = 0
ret = -1
ret = 0

因为c比C的ascii码要大32,所以第一个结果是32,另外x要比y小1,所以第三个结果是-1,定义里面的respectively决定了返回值。

0 0
原创粉丝点击