将字符数组s2中的全部字符复制到字符数组s1中。不用strcpy函数。复制时,’\0’也要复制过去。

这个程序一运行就乱码,为什么,哪里错了呢??
#include <stdio.h>
#include <string.h>
void main()
{
char s1[10],s2[10],n,i;
gets(s2);
n=strlen(s2);
for(i=0;i<=n;i++)
{
if(s2[i]!='\0')
s1[i]=s2[i];
else
s1[i]='\0';
printf("%s",s1);}
}

第1个回答  2012-02-04
#include <stdio.h>
#include <string.h>
void main()
{
char s1[10],s2[10],n,i;
gets(s2);
n=strlen(s2);
for(i=0;i<=n;i++)
{
if(s2[i]!='\0')
s1[i]=s2[i];
else
s1[i]='\0';
}//括号放错位置了
printf("%s",s1);

}
第2个回答  2012-02-04
将最后的括号放在s1[i]='\0'之后即可!!!谢谢!!
第3个回答  推荐于2016-07-19
修改成:
for(i=0;i<n;i++)
{
if(s2[i]!='\0')
s1[i]=s2[i];
}
s1[i]='\0';
printf("%s",s1);本回答被提问者采纳
相似回答