不用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