模拟实现strncmp

首先简单介绍下这个函数
int strncmp( const char *string1, const char *string2, size_t count );
比较字符串,所以必须加上const使字符串不能改变
该函数的头文件是#include
< 0 string1子字符串小于string2子字符串
= 0 string1子字符串与string2子字符串相同

0string1子字符串大于string2子字符串 简单的模拟实现
源代码如下

int my_strncmp(const char* str1, const char* str2, size_t count)
{
 assert(str1 != NULL);
 assert(str2 != NULL);
 while (count--)
 {
  if ((*str1 == *str2) && str1&&str2)//三个条件 其中包括两个字符串等于\0时的情况
  {
   str1++;
   str2++;
  }
  else
   return *str1 - *str2;//解引用操作后 两个字符相减得到返回值
 }
}
int main()
{
 char arr1[] = "abcdaf";
 char arr2[] = "abcdefg";
 int ret =my_strncmp(arr1, arr2, 6);
 if (ret > 0)
 {
  printf("arr1>arr2");
 }
 else if (ret < 0)
 {
  printf("arr1

你可能感兴趣的:(模拟实现strncmp)