c语⾔中strcmp函数,函数原型和函数头⽂件
1、函数原型。
#include <stdio.h>
int strcmp(const char *s1, const char *s2) // 函数返回int型,形参为两个指向char型的指针
{
while(*s1 == *s2) //当元素相等时
{
if(*s1 == '\0') // 判断*s1是否为null,*s1是null意味着两个字符串相等(说明⼀直到字符串的末尾都相等)
return0;
s1++;  // 指针依次后移
s2++;
}
return (unsigned char)*s1 - (unsigned char)*s2; //如果*s1 != *s2,  则⽤指针指向的*s1的当前字符减去指针指向*s2的当前字符。
}
int main(void)
{
char str1[128] = "abcd";
char str2[128];
printf("str2: "); scanf("%s", str2);
int tmp = strcmp(str1, str2);  //函数的实参为两个字符串数组名称,相当于指向数组的⾸个元素的指针,(函数间数组的传递是以数组的第⼀个元素的指针进⾏的。)if(tmp > 0)
puts("str1 is greater than str2.");
else if(tmp == 0)
puts("str1 is equal to str2.");
else
puts("str1 is less than str2.");
return0;
}
2、加载strcmp的头⽂件,可以直接调⽤函数
#include <stdio.h>
#include <string.h> // head file? It can run without loading
int main(void)
{
printf函数原型在什么头文件里
char str1[128] = "abcd";
char str2[128];
printf("str2: "); scanf("%s", str2);
int tmp = strcmp(str1, str2);
if(tmp > 0)
puts("str1 is greater than str2.");
else if(tmp == 0)
puts("str1 is equal to str2.");
else
puts("str1 is less than str2.");
return0;
}