模拟实现库函数: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语言
【C语言】atoi函数的使用和模拟实现
本篇将介绍atoi函数的使用,通过实例讲解函数的使用方法,模拟实现atoi函数。
162 1
|
C语言
模拟库函数strcpy
关于库函数strcpy()的详细内容,跳转文章:《C语言:字符串拷贝函数strcpy()》
54 0
|
C语言
你应该知道的C语言干货(2)(strlen和strcpy的模拟实现)
你应该知道的C语言干货(2)(strlen和strcpy的模拟实现)
74 0
|
8月前
|
算法 C语言
【C语言】:atoi函数的使用及其模拟实现
【C语言】:atoi函数的使用及其模拟实现
81 5
|
9月前
|
安全 C语言
【C语言】strcpy与strncpy函数的使用和模拟实现
【C语言】strcpy与strncpy函数的使用和模拟实现
90 0
模拟实现库函数,strtsr,memmove.
<1>主页:C语言的前男友 <2>知识讲解:模拟实现 库函数 strstr,memmove <3>创作者:C语言的前男友 <4>开发环境:Visual Studio 2022 <5>前言:学习了strstr,memnove等库里面的内存相关的函数,功能非常的强大。今天我们来模拟实现一下。
|
9月前
|
C语言
【C语言】模拟strcpy函数的实现
【C语言】模拟strcpy函数的实现
60 0
模拟实现库函数strlen
模拟实现库函数strlen
36 0
|
C语言
了解C语言中的atoi函数和模拟实现
了解C语言中的atoi函数和模拟实现