字符串复制不用strcpy

来源:百度知道 编辑:UC知道 时间:2024/05/08 21:03:39
main()
{char *s1="abcdefg",*s2="efgh";
int i;
for(i=0;s2[i];i++)
?s1[i]=s2[i];?(这个地方电脑说有问题)
s1[i]=0;
puts(s1);}

因为s1是一个指向的是一个常量字符串,不能作为左值。
如果想实现s1[i] = s2[i];
你 就得为s1分配内存。
如果 s1 = (char*) malloc(sizeof(s2) + 1);

void main(void)
{
char s1[] = "abcdefg", s2[] = "efgh";
int i;
for (i = 0; s2[i]; i++)
s1[i] = s2[i];
puts(s1);
}

先要把s1的指针释放掉delete [] s1,然后判断s1是否为空,如果为空,再
int len=strlen(s2);s1=new char[len+1];for(int i=0;i<len;i++)s1[i]=s2[i];