strcmp
函数原型
extern int strcmp(const char *s1,const char *s2);
规则
当s1<s2时,返回为负数;
当s1=s2时,返回值=0;
当s1>s2时,返回正数。
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇’\0’为止。如:
1.“A”<“B” 2.“A”<“AB” 3.“Apple”<“Banana” 4.“A”<“a” 5.“compare”<“computer”
特别注意:strcmp(const char *s1,const char * s2)这里面只能比较字符串,即可用于比较两个字符串常量,或比较数组和字符串常量,不能比较数字等其他形式的参数。
ANSI标准规定,返回值为正数,负数,0 。而确切数值是依赖不同的C实现的。和v
1.
当两个字符串不相等时,C标准没有规定返回值会是1 或 -1,只规定了正数和负数。
2.
有些会把两个字符的ASCII码之差作为比较结果由函数值返回。但无论如何不能以此条依据作为程序中的流程逻辑。
strcmp() 函数是二进制安全的,且对大小写敏感。该函数与 strncmp() 函数类似,不同的是,通过 strncmp() 您可以指定每个字符串用于比较的字符数。
示例
#include <stdio.h>
#include <string.h>
int main()
{
char *a="hello world";
char *b="hello worlz";
printf("%d\n",strcmp(a,b));
}
运行结果