最近笔试时有遇到问这个函数返回值的情况,故简单总结一下:
1.strcmp()用于字符串比较,返回值功能简述:
返回值 | 规则 |
<0 | ptr1与ptr2的首个字符不匹配且ptr1的值比ptr2值小。 |
0 | 两个字符串的组成均相同。 |
>0 | ptr1与ptr2的首个字符不匹配且ptr1的值比ptr2值大。 |
2.strcmp()函数模拟实现,写一个实现strcmp()功能的函数更容易从底层理解
#include "stdlib.h"
#include "string.h"
int my_strcmp(char const* dst, char const* src)
{
while (*dst == *src && *dst != '\0')
{
dst++;
src++;
}
return *dst-*src;
}
int main()
{
char* ch1 = "acc";
char* ch2 = "acb";
printf("字符串比较结果为:%d\n",my_strcmp(ch1, ch2));
return 0;
}
3.简单使用一下系统自带strcmp()函数
#include "stdlib.h"
#include "string.h"
int main(){
char c[]="acc";
char d[]="acb";
printf("%d\n",strcmp(c,d)) ;
return 0;
}
上面两段程序的返回值都为1