字符串函数__strcmp()

简介: 字符串一定要有'\0',否则判断不了两字符串是否相等

一.strcmp()的简介

比较两个字符串真正内容,比较对应字符的ASCII码的值,引用的头文件#include<string.h>

strcmp()函数的声明:

int strcmp ( const char * str1, const char * str2 );

str1:字符串的首地址

str2:字符串的首地址

返回的类型是整形,如第一个字符串大于第二个字符串返回整形负数,如第一个字符串等于第二个字符串返回整形零,如第一个字符串小于第二个字符串返回整形正数

二.注意事项

1.字符串一定要有'\0',否则判断不了两字符串是否相等,例如

1. #include<stdio.h>
2. #include<string.h>
3. int main()
4. {
5. char arr[]={'a','b','c'};
6. char brr[]={'a','b','c'};
7. int ret=strcmp(arr,brr);
8. printf("%d\n",ret);
9. return 0;
10. }

结果:

476528D3-0149-4209-89E3-F84D2B0CAA7D.jpeg

 

我们可以把这段代码

char arr[]={'a','b','c'};

char brr[]={'a','b','c'};

改为:

char arr[]={'a','b','c','\0'};

char brr[]={'a','b','c','\0'};

或者

char arr[]="abcdef";

char brr[]="abcdef";

三.模拟实现strcmp()

1. #include<stdio.h>
2. int my_strcmp(char* s1,char* s2)
3. {
4. while(*s1==*s2)
5.     {
6. if(*s1=='\0')
7.         {
8. return 0;
9.         }
10.         s1++;
11.         s2++;
12.     }
13. //    if(*s1>*s2)
14. //    {
15. //        return 1;
16. //    }
17. //    else
18. //    {
19. //        return -1;
20. //    }
21. return *s1-*s2;
22. }
23. int main()
24. {
25. //    char arr[]="abcdef";
26. //    char brr[]="abcdef";
27. char arr[]={'a','b','c','\0'};
28. char brr[]={'a','b','d','\0'};
29. int ret=my_strcmp(arr,brr);
30. if(ret>0)
31.     {
32. printf("arr>brr\n");
33.     }
34. else if(ret<0)
35.     {
36. printf("arr<brr\n");
37.     }
38. else
39.     {
40. printf("arr==brr\n");
41.     }
42. return 0;
43. }

运行结果:


 


17B69167-7931-41AF-95CA-747B48452837.jpeg

相关文章
|
9月前
|
C语言
字符串函数`strlen`、`strcpy`、`strcmp`、`strstr`、`strcat`的使用以及模拟实现
字符串函数`strlen`、`strcpy`、`strcmp`、`strstr`、`strcat`的使用以及模拟实现
166 1
|
4月前
解析与模拟常用字符串函数strcpy,strcat,strcmp,strstr(一)
解析与模拟常用字符串函数strcpy,strcat,strcmp,strstr(一)
70 0
|
9月前
|
C语言
C语言:字符函数和字符串函数(strlen strcat strcmp strncmp等函数和模拟实现)
C语言:字符函数和字符串函数(strlen strcat strcmp strncmp等函数和模拟实现)
|
9月前
|
C语言
深入理解字符串函数和字符函数(islower和isupper、tolower和toupper、strlen、strcpy、strcat、strcmp)(一)
深入理解字符串函数和字符函数(islower和isupper、tolower和toupper、strlen、strcpy、strcat、strcmp)(一)
|
9月前
|
C语言
深入理解字符串函数(strstr、strtok、strerror)(二)
深入理解字符串函数(strstr、strtok、strerror)(二)
|
编译器 Linux C语言
【C语言】字符串函数的介绍二( strcmp、strncpy、strncat、strncmp)
【C语言】字符串函数的介绍二( strcmp、strncpy、strncat、strncmp)
227 0
|
存储 算法 编译器
【C语言】字符串函数介绍三(strstr、strtok、streeror)
【C语言】字符串函数介绍三(strstr、strtok、streeror)
196 0
|
存储 C语言 C++
【C语言】字符串函数的介绍一(strlen、strcpy、stract)
【C语言】字符串函数的介绍一(strlen、strcpy、stract)
106 0
字符串函数strncmp
字符串函数strncmp
137 1
字符串函数__strstr
str1和str2字符串中一定要有'\0',不然不能正确从字符串查到子串