#include<cstdio>
#include<iostream>
#include<cstring>
#include<string>
#include<cassert>
using namespace std;
char * my_strcpy(char *str1,const char *str2)// 源字符串加const
{
assert(str1);
assert(str2);//是否为空指针
char *a=str1;
memcpy(str1,str2,strlen(str2)+1);//内存重叠情况strcp(str1+1,str);
return a;
}
char *my_memcpy(char *s1,const char *s2,int l)
{
assert(s1);
assert(s2);
char *a=s1;
if(s1<=s2||s1>=s2+l)//内存不重叠
{
while((*s1++=*s2++));
}
else//内存重叠
{
s1+=(l-1);
s2+=(l-1);
while(l--)
{
*s1--=*s2--;
}
}
return a;
}
int main()
{
char str[10]="zxc";
char str1[10]="abc";
char str2[10]="123";
cout<<strcpy(str+1,str)<<endl;
cout<<my_memcpy(str1+1,str1,4)<<endl;
cout<<my_strcpy(str2+1,str2)<<endl;
cout<<str<<endl;
cout<<str1<<endl;
cout<<str2<<endl;
}
C++ strcpy()
最新推荐文章于 2024-07-16 08:06:17 发布