限制长度的字符串函数模拟实现

简介: 限制长度的字符串函数模拟实现

一. strncpy


1. 定义


我们可以发现 相比于 strcpy strncpy实际上的参数实际上多了一个num


db9f3f8cd24a452286d1e814c906294e.png


2. 实现


char* my_strncpy(char* des, const char* sour, size_t num)
{
  assert(des && sour);
  char* ret = des;
  while (num&&*sour)
  {
    *des++ = *sour++;
    num--;
  }
  while (num)
  {
    *des++ = '\0';
    num--;
  }
  return ret;
}


代码表示如上

实现效果如下


0f06ee5073ee45ceab30edcf76ebaa64.png


二. strncmp


1. 定义


strcmp一样 只是后面传参的时候多了数字 比较这么多个字符的内容


2. 实现


int my_strncmp(const char* str1, const char* str2,size_t num)
{
  assert(str1 && str2);
  while (num&&(* str1 == *str2))
  {
    if (*str1 == '\0')
    {
      return 0;
    }
    str1++;
    str2++;
    num--;
  }
  if (*str1 > *str2)
  {
    return 1;
  }
  if (*str1 < *str2)
  {
    return -1;
  }
  else
  {
    return 0;
  }
}


实现结果如下


20eeef0731b447ec89de8052887946c1.png


三. strncat


1. 定义


拼接字符 不过这次设定了拼接的数量


2. 实现


代码表示如下


char* my_strcat(char* des, const char* sourse,size_t num)
{
  assert(des && sourse);//duanyan
  char* ret = des;
  while (*des)
  {
    des++;
  }
  while (num&&*sourse)
  {
    num--;
    *des++ = *sourse++;
  }
  *des =‘\0’;
  return ret;
}


实际效果如下


fe9b934e20854434a94500759821db3c.png


以上就是本篇博客的全部内容啦 由于博主才疏学浅 所以难免会出现纰漏 希望大佬们看到错误之后能够


不吝赐教 在评论区或者私信指正 博主一定及时修正


那么大家下期再见咯

相关文章
|
8月前
[字符串和内存函数]strcmp字符串函数的详解和模拟
[字符串和内存函数]strcmp字符串函数的详解和模拟
64 1
|
C语言 C++
C/C++字符函数和字符串函数模拟实现与详解————长度不受限制的字符串函数
C/C++字符函数和字符串函数模拟实现与详解————长度不受限制的字符串函数
63 0
|
7月前
|
安全
16.字符串函数的使用和模拟实现(全)
16.字符串函数的使用和模拟实现(全)
|
8月前
字符串函数的模拟实现
字符串函数的模拟实现
49 1
|
8月前
|
C语言
字符函数和字符串函数解析及模拟实现
字符函数和字符串函数解析及模拟实现
86 0
|
8月前
|
C语言
超全超详细的字符串操作函数和字符分类函数(附模拟实现)
超全超详细的字符串操作函数和字符分类函数(附模拟实现)
|
程序员
字符串函数的使用及其模拟实现
字符串函数的使用及其模拟实现
56 0
|
编译器 C语言
字符串函数的使用及模拟实现
字符串函数的使用及模拟实现
47 0
|
C语言
深入探索字符串函数与模拟实现
深入探索字符串函数与模拟实现
105 1
深入探索字符串函数与模拟实现