模拟实现库函数:strcpy

简介: 模拟实现库函数:strcpy

对于库函数,想必大家已经有所了解!但是对于某些误撞进入此篇博客的读者,笔者在此进行简单的介绍!


“strcpy是字符串复制函数,strcpy(a,b)就是将字符串b的内容全部复制到字符串a中,使用这个函数时要注意字符串拥有的空间至少要和b字符串相等,否则会出错。”


笔者所写的简单代码为:


//库函数strcpy的实现情况!
#include <stdio.h>
#include <string.h>
int main()
{
  char arr1[20] = "***************";
  char arr2[] = "hello";
  strcpy(arr1, arr2);
  printf("%s\n", arr1);
  return 0;
}

在这段代码中,形象的诠释了strcpy()库函数的简单应用!


下面是代码的运行结果!


0a2653c851af460fa595bd959398a8f1.png


经过上面的简单讲解,想必大家对于库函数strlen()有着深刻的了解,并且能自我找到规律了!下面请看笔者对于如何用代码来模拟库函数strlen()的实现!


用代码来模拟库函数strlen()的实现!


下面请看笔者的简单代码,然后笔者将会通过代码加解析的方式来带领大家走进神秘的库函数!


//模拟库函数strlen()的实现!
#include <stdio.h>
void my_str(char* arr1, char* arr2)
{
  while (*arr2 != '\0')
  {
  *arr1 = *arr2;
  arr1++;
  arr2++;
  }
  *arr1 = *arr2;  //拷贝‘\0’
}
int main()
{
  char arr1[20] = "****************";
  char arr2[] = "hello";
  my_str(arr1, arr2);
  printf("%s\n", arr1);
  return 0;
}


在上述的代码段中,最为重要的部分还是在于:while()的拷贝循环里面!


对于在main函数中,通过:my_str(arr1, arr2);  将数组  char arr1[20] = "****************";    char arr2[] = "hello";  传递给形参,而数组名是数组首元素地址!对于地址,形参要用指针来接收,,返回类型为:void(空类型)!因此经函数部分定义为:void my_str(char* arr1, char* arr2)!


对于在函数体部分:while ()循环,对于()里面的内容一直循环判断,直到: *arr2 == '\0'     时候,条件不成立,结束while ()循环!


在while ()循环里面:


*arr1 = *arr2;
  arr1++;
  arr2++;

将地址进行解引用操作后,进行赋值运算!从而将*arr2全部赋值给*arr1; 然后在arr1++;   arr2++;


一直到  : *arr2 == '\0'    为止!然后在执行一次:*arr1 = *arr2;  这个的目的主要在于还是要拷贝'\0'  ! 然后才能算术完全实现库函数strlen()的功能!


代码的最后运行结果为:


12c3b7f3f8814309a195c64f051d4445.png


对于函数体部分的代码,不同的人有着不同的见解,其实也可以写成:


void my_str(char* arr1, char* arr2)
{
  while (*arr1++ = *arr2++)
  {
  ;
  }
}

这样书写代码的最后结果也是一样的!


最后的运转结果为:


12c3b7f3f8814309a195c64f051d4445.png


对于上述模拟库函数strlen()的实现已经到此为止!


最后笔者一丢丢小私心!(在文章开头部分)望满足!


相关文章
|
C语言
模拟库函数strcpy
关于库函数strcpy()的详细内容,跳转文章:《C语言:字符串拷贝函数strcpy()》
30 0
|
12月前
|
C语言
你应该知道的C语言干货(2)(strlen和strcpy的模拟实现)
你应该知道的C语言干货(2)(strlen和strcpy的模拟实现)
48 0
|
5月前
|
安全 C语言
【C语言】strcpy与strncpy函数的使用和模拟实现
【C语言】strcpy与strncpy函数的使用和模拟实现
30 0
|
5月前
|
C语言
【C语言】模拟strcpy函数的实现
【C语言】模拟strcpy函数的实现
28 0
模拟实现库函数,strtsr,memmove.
<1>主页:C语言的前男友 <2>知识讲解:模拟实现 库函数 strstr,memmove <3>创作者:C语言的前男友 <4>开发环境:Visual Studio 2022 <5>前言:学习了strstr,memnove等库里面的内存相关的函数,功能非常的强大。今天我们来模拟实现一下。
|
10月前
模拟实现库函数strlen
模拟实现库函数strlen
27 0
三种方法模拟实现库函数strlen,加深对strlen的理解
三种方法模拟实现库函数strlen,加深对strlen的理解
|
编译器 C语言 C++
模拟C语言库函数strlen的实现
模拟C语言库函数strlen的实现
59 0
|
C语言 C++
【C语言】模拟实现库函数:strcpy
【C语言】模拟实现库函数:strcpy
63 0