很多问题中,我们会遇到有关名字排字典序的问题,这时候strcmp函数就派上了用场。
1.函数原型:
extern int strcmp(const char *s1,const char * s2);
2.需要包含头文件#include<string.h>
3.函数模板:
strcmp(str1,str2);
4.具体功能:
当str1<str2时,返回一个负数
当str1=str2时,返回值为零
当str1>str2时,返回一个正数
具体是两个字符串逐位按ASCII值大小比较,直到遇到‘\0‘或者出现不同的字符为止。
如:"A"<"B" "a">"A" "computer">"compare"
特别注意:strcmp(const char *s1,const char * s2)这里面只能比较字符串,不能比较数字等其他形式的参数。
一例实现代码:
#include <string.h>
#include <memcopy.h>
#undef strcmp
int strcmp (p1, p2)
const char *p1;
const char *p2;
{
register const unsigned char *s1 = (const unsigned char *) p1;
register const unsigned char *s2 = (const unsigned char *) p2;
unsigned reg_char c1, c2;
do{
c1 = (unsigned char) *s1++;
c2 = (unsigned char) *s2++;
if (c1 == ‘\0‘)
return c1 - c2;
}
while (c1 == c2);
return c1 - c2;
}
libc_hidden_builtin_def (strcmp)
原文:https://www.cnblogs.com/NKHTH/p/14332594.html