(一)strcpy
首先我们来了解该函数的使用方式
最简单的理解就是“复制粘贴”,比如现在有一个数组arr1,存放着 hello ;还有一个数组arr2,存放着 boy ;那么使用该函数之后,形如 strcpy(arr1,arr2)之后,打印出的arr1就会是boy (需要注意的是在这个过程中是将arr2中的字符串完全复制到arr1中,包括 \0 )
先来看代码:
#include<stdio.h> void my_strcpy(char* pa,char* pb)//使用指针分别指向arr1和arr2 { while(*pb!='\0')//使用循环,当指向arr2的\0的时候停止 { *pa++ = *pb++; //替换 } *pa = *pb;//最后将arr2中的'\0'也复制到arr1中 } int main() { char arr1[20]="hello";//定义两个字符数组 char arr2[20]="boy"; my_strcpy(arr1,arr2);//这里自定义一个函数用来实现strcpy函数的功能 printf("%s\n",arr1); return 0; }
使用指针是很方便的方法,具体的意思可以看下图理解!
图中最上面的四个红色箭头意思是 依次往下指
(二)stract
我们先来了解该函数的使用方式
简单的去理解就是“追加”,意思就是将一个字符串连接在另一个后面,'\0'也会追加
代码如下(请读者依据上述方式自行在草稿本上推演具体原理)
#include<stdio.h> void my_stract(char* pa,char* pb)//使用指针分别指向arr1和arr2 { while(*pa!='\0')//使用循环 { *pa++; //首先让指针pa指向arr1的最后一个字符即'\0' } while(*pb!='\0')//使用循环,当指向arr2的\0的时候停止 { *pa++ = *pb++; //替换 } *pa = *pb;//最后将arr2中的'\0'也追加到arr1中 } int main() { char arr1[20]="hello";//定义两个字符数组 char arr2[20]="boy"; my_stract(arr1,arr2);//这里自定义一个函数用来实现stract函数的功能 printf("%s\n",arr1); return 0; }