strcmp

来源:互联网 发布:vscode js插件 编辑:程序博客网 时间:2024/05/21 18:44
原型:extern int strcmp(const char *s1,const char * s2);
所在头文件:string.h
功能:比较字符串s1和s2。
一般形式:strcmp(字符串1,字符串2)
说明:
当s1<s2时,返回值= -1
当s1==s2时,返回值= 0
当s1>s2时,返回值 = 1
注:c++ 中
当s1<s2时,返回值小于0
当s1==s2时,返回值等于0
当s1>s2时,返回值 大于0
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:
"A"<"B" "a">"A" "computer">"compare"
特别注意:strcmp(const char *s1,const char * s2)这里面只能比较字符串,不能比较数字等其他形式的参数。
一例实现代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <string.h>
#include <memcopy.h>
#undef strcmp
intstrcmp (p1, p2)
{
  constchar *p1;
  constchar *p2;
  {
   registerconst unsigned char*s1 = (constunsigned char*) p1;
   registerconst unsigned char*s2 = (constunsigned char*) p2;
   unsigned reg_char c1, c2;
   do{
      c1 = (unsigned char) *s1++;
      c2 = (unsigned char) *s2++;
      if(c1 == '\0')
        returnc1 - c2;
   }while(c1 == c2);
  returnc1 - c2;
}
libc_hidden_builtin_def (strcmp)
 
c的实现方式:
intmystrcmp(constchar*s1,constchar*s2){
   while(*s1!=0&&*s2!=0&&*s1==*s2){
        s1++;
        s2++;
   }   
   return*s1-*s2;
}
原创粉丝点击