C语言中对strcpy函数 与 strcat函数的封装方式

1.对于strcpy的两种封装方式mystrcpy1|mystrcpy2.

#include<stdio.h>
#include<string.h>

char* mystrcpy1(char *dst,char *src)
{
char *amao=dst;
while(*src!='\0')
{
*dst=*src;
*dst++;
*src++;
}
*dst='\0';
return amao;
}


char* mystrcpy2(char *dst,char *src)
{
if(dst == NULL||src == NULL)
{
return NULL;
}
char *amao=dst;
while( (*dst++ = *src++) != '\0')
{
*dst='\0';
}
return amao;
}

int main()
{
char str[128]="\0";
char *p="amaoaichiyu";
char *p2;
p2=mystrcpy1(str,p);
puts(p2);
return 0;

}

 

 

2.对于strcat的三种封装

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char* mystrcat1(char *des,char *str)
{
char *amao=des;
while(*des!='\0'){des++;}
while((*des++=*str++)!='\0'){
*des='\0';
}
return amao;
}


char* mystrcat2(char *des,char *str)
{
char *amao=des;
strcpy(des+strlen(des),str);
return amao;
}

 

char* mystrcat3(char *des,char *str)

{
assert( des!=NULL && str!=NULL);
char *amao=des;
for(;*des!='\0';des++);
while((*des++=*str++)!='\0')
*des='\0';
return amao;
}



int main()
{
char str[128]="amao";
char *p ="aichiyu";
char *p2 =mystrcat1(str,p);
printf("str = %s\n",str);
printf("p2=%s\n",p2);

return 0;
}

 

posted @ 2022-02-13 22:04  amacy  阅读(141)  评论(0)    收藏  举报