1.模拟实现strncpy 2.模拟实现strncat 3.模拟实现strncmp

来源:互联网 发布:路由器怎么网络慢 编辑:程序博客网 时间:2024/05/16 00:51

在C语言string这个库中的strcpy,strcat,strcmp这三个函数是通过传递数组的内容来限制它们的,这样做并不是一个好方法,所以新增了strncpy,strncat,strncmp这三个函数,用传参的方式现实字符串的改变长度,模拟实现如下:

strncpy

char* my_strncpy(char*dest, const char*src, int n)  {  assert(dest);  assert(src);  char*p = dest;  while (n--)  {  *p++ = *src++;  }  *p = 0;  return dest;  }  

strncat

char* my_strncat(char*dest, const char*src, int n)  {  assert(dest);  assert(src);  char*p = dest;  while (*p)  {  p++;  }  while (n--)  {  *p++ = *src++;  }  *p = 0;  return dest;  }  

strncmp

int my_strncmp(const char*str1, const char*str2, int n)  {  assert(str1);  assert(str2);  while (n--)  {  if (*str1 == *str2)  {  str1++;  str2++;  }  else  {  if ((*str1-*str2)<0)  return -1;  else  return 1;  }  }  return 0;  }  
阅读全文
0 0
原创粉丝点击