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; }
浙公网安备 33010602011771号