首页 > 代码库 > strcpy自实现
strcpy自实现
为了避免strcpy源串覆盖问题(P220),自实现strcpy。
#include <stdio.h>#include <string.h>#include <assert.h>#include <malloc.h>void myStrcpy(char *to, char *from){ assert(to != NULL && from != NULL); while(*from != ‘\0‘){ *to ++ = *from ++; } *to = ‘\0‘;}int main(){ char s[] = "123456789"; char d[] = "1234"; printf("&s= %x, &d= %x\n",s,d); //在栈空间上,d的起始地址在s的起始地址之前。 strcpy(d, s); //使用strcpy将会对源串s产生覆盖 printf("s=%s d=%s\n",s,d); char *str = (char*)malloc(15 * sizeof(char*)); char *ttr = (char*)malloc(15 * sizeof(char*)); myStrcpy(str, "123456789"); myStrcpy(ttr, "1234"); myStrcpy(ttr, str); printf("str=%s ttr=%s\n",str,ttr); return 0;}
strcpy自实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。