不用c语言标准函数复制,不用c语言标准函数复制数据

C语言 把字符串A复制到字符串B用动态分配(不用函数)

第一种方案,动态分配加重分配

成都创新互联公司服务项目包括浑江网站建设、浑江网站制作、浑江网页制作以及浑江网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,浑江网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到浑江省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

优势:一次循环

劣势:频繁申请内存

#include stdio.h

#include stdlib.h

int main()

{

int i = 0, j = 1;

char *A = "Hello world!";

char *B = (char *)malloc(j);

while (*(A + i) != '\0')

{

*(B + i) = *(A + i);

i++;

j++;

B = (char *)realloc(B, j);

}

puts(B);

free(B);

return 0;

}

第二种方案,先求长度再动态分配

优势:只申请一次内存

劣势:两次循环

#include stdio.h

#include stdlib.h

int main()

{

int i = 0;

char *A = "Hello world!", *B = NULL;

while (*(A + i) != '\0') i++;

B = (char *)malloc(i + 1);

while (i = 0)

{

*(B + i) = *(A + i);

i--;

}

puts(B);

free(B);

return 0;

}

不使用C语言标准函数库中的函数实现字符串的复制,即实现strcpy函数的功能。

char *my_strcpy(char *d,char *s)

{

char *t;

for(t=d;*t++=*s++;);

return d;

}

不使用C语言标准函数库,实现字符串复制,即实现Strcpy函数功能。为什么我编的代码,BULID没问题RUN出错

#include stdio.h

void main() { char a[20], b[20]; char *ps, *pt;

ps=a;pt=b; scanf("%s",ps);

while(1) {

*pt=*ps;

if(*ps=='\0') break;

*ps++;

*pt++;

}

printf ("%s\n",b);

}

*ps的判断提前


分享名称:不用c语言标准函数复制,不用c语言标准函数复制数据
文章转载:http://myzitong.com/article/dscjogd.html