这个哪里错了呢???

编程小白,求指点(实现字符串的拷贝)
#include
#include
int main()
{
int i;
char p,*q,s1[30],s2[30];
p=s1,q=s2;
printf("输入一个字符串:");
scanf("%s",&s1);
for(i=0;i<100;i++)
{
*(q+i)=
(p+i);//实现拷贝
if(*(p+i)=='\0')break;
}
for(i=0;*(q+i)!='\0';i++)
{
printf("%s",*(q+i));
}
return 0;
system("pause");
}

c

3个回答

数组可以赋值给指针变量,但不能直接赋值给字符实体p=s1

 int main()
{
    int i;
    char *p, *q, s1[30] = { 0 }, s2[30] = {0};
    p = s1, q = s2;
    printf("输入一个字符串:");
    scanf("%s", &s1);
    for (i = 0; i < 30; i++)
    {
        *(q + i) = *(p + i);//实现拷贝 
        if (*(p + i) == '\0')break;
    }

    printf("%s\n", q);
    return 0;
}

想知道p=s1 的意义何在。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐