自定义字符串比较函数
根据字符串比较函数strcmp()函数实现字符串比较功能,字符串比较函数接收两个字符串作为参数,通过返回值判断两个字符串是否相等。具体如例1所示。
例1 cmpStr.c
1 #include <stdio.h>
2 unsigned int calStr(char* s)
3 {
4 int len = 0;
5 if (s == NULL)
6 {
7 printf("calStr():错误!空字符串\n ");
8 return -1;
9 }
10 else
11 {
12 while (*(s++) != '\0')
13 len += 1;
14 }
15 return len;
16 }
17 int cmpStr(char const* str1, char const* str2)
18 {
19 if (calStr(str1) == calStr(str2))
20 {
21 while (*str1 == *str2)
22 {
23 if (*str1 == '\0')
24 {
25 return ;
26 }
27 str1++;
28 str2++;
29 }
30 }
31 else
32 return -1;
33 }
34 int main()
35 {
36 char* s1 = "a0cd";
37 char* s2 = "abcd";
38 printf("%d\n", cmpStr(s1, s2));
39 return 0;
40 }
例1程序运行结果如图1所示。
图1 例1运行结果
在例1中,第2~16行代码,calStr()函数对两个字符串进行长度比较,第17~33行代码实现字符串长度比较函数,其中第19行代码调用calStr()函数对字符串长度进行比较,若长度不相等程序返回-1。若长度相等时在代码第21~30,使用while()循环判断两个字符串中的每个字符是否一样,直到比较到字符串末尾字符‘\0’为止,在比较过程中若字符串s1中的字符与字符串s2有不相等的,则循环退出返回一个非0值,若字符串s1和字符串s2中的每个字符串相等则返回0。