C语言问题,帮忙看下

来源:百度知道 编辑:UC知道 时间:2024/05/17 21:09:47
#include<stdio.h>
strcpy(int a[20],int b[20])
{ int i;
for(i=0;;i++)
{ b[i]=a[i];
if (b[i]=='\0')
break;
}
}
main()
{ int i,a[20],b[20];
for(i=0;;i++)
{ if(a[i]=='\n')
break;
scanf("%d",&a[i]);
}
strcpy(a,b);
for(i=0;;i++)
{ if (b[i]=='\0')
break;
printf(" %d",b[i]);

}
}
主要考虑不需要确定输入个数都可以复制
如果要对数字复制怎么办

看了一下,感觉你的错误是很严重的,整型数组怎么可能会有字符串的结束标志呢?如果把数组改成字符类型的稍微修改一下就差不多了,我帮你写了一个,你作为参考一下:
#include<stdio.h>
void copy(char *a ,char *b)
{
int i;
for(i=0;;i++)
{
if(a[i]!='\0')b[i]=a[i];
else break;
}
b[i]='\0';//设置最后一位为字符串结束标志
}

void main()
{
char a[20],b[20];
int i;
for(i=0;;i++)
{
a[i]=getchar();
if(a[i]=='\n') break;
}
a[i]='\0';//把最后一个的\n改成字符串的结束标志
copy(a,b);
printf("%s\n",b);
}
我已经运行过了,是正确的!

strcpy(int a[20],int b[20])

你为什么这样设定参数?这样的话,你在主程序里输入的数不能超过20个!!当然
不好了
gaohongxia0707@sina.com

上面的厉害