C语言:strncmp函数的实现

int my_strncmp(const char *dest, const char *str, size_t n)
{
 assert(dest != NULL&str != NULL);
 const char* d = dest;
 const char* s = str;
 while (n--)
 {
  if (*dest++ < *str++)
  {
   return -1;
  }
  else if (*d++>*s++)
  {
   return 1;
  }
 }
 return 0;
}
int main()
{
 char arr1[20] = "abcdd";
 char arr2[20] = "abcd" ;
 
 printf("%d", my_strncmp(arr1, arr2,5));

 system("pause");
 return 0;
}

注意dest与str在每次++后地址的不同,所以要给其一个变量记住其初始值,从而进行两次比较。

猜你喜欢

转载自blog.csdn.net/qq_43647265/article/details/86164628