C++ strcpy()

来源:互联网 发布:奥运知识知多少 编辑:程序博客网 时间:2024/06/06 18:23
#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;}