学科分类
目录
C语言

自定义字符串比较函数

根据字符串比较函数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。

点击此处
隐藏目录