一:strcpy的模拟实现(拷贝)
1:算法思想
- (1).首先确保目标字符串要足够长,要确保原字符串中的字符能够储存在目标字符串中。
- (2).将原字符串中的字符赋给与目标字符串中下标相同的元素。
- (3).需要注意的是必须将原字符串的’\0’也要赋给目标字符串,将目标字符串“截断”。以确保输出拷贝结果时不会出现乱码。(因为目标字符串长度远大于原字符串,若不将其“截断”就会将后续的字符也打印出来而后续字符都是空的)
#include<stdio.h>
#include<string.h>
void Mystrcpy(char arr[],char brr[] , int sz ) //模拟实现strcpy(拷贝)
{
int i=0;
for(;i<=sz;i++) //这里的 i 取值范围可以等于 sz 目的就是将'\0'赋值到目标字符串中
{
arr[i]=brr[i];
}
}
int main()
{
char arr[100];
char brr[]="I am a student.";
int sz=strlen(brr);
printf("%d\n",sz); //打印出brr的字符串长度
Mystrcpy(arr,brr,sz);
printf("%s\n",arr);
return 0;
}
2.监视结果
3.运行结果
二.strcpy的调用
1.代码
#include<stdio.h>
#include<string.h>
int main()
{
char arr[100];
char brr[]="I am a student.";
strcpy(arr,brr);
printf("%s\n",arr);
return 0;
}
2.监视结果
3.运行结果
由模拟实现的strcpy与调用的strcpy运行的监视结果来看模拟实现的strcpy完全和strcpy调用过程相同说明我的程序达到了模拟实现的效果。若有不足和改进之处还请浏览者留下你的改进思想