当前位置: 代码迷 >> C语言 >> 关于C语言的一道题,不知错误,请指点
  详细解决方案

关于C语言的一道题,不知错误,请指点

热度:129   发布时间:2007-08-26 23:34:58.0
关于C语言的一道题,不知错误,请指点
#include <stdio.h>
#include <string.h>
int main (void)
{
char a[20],b[20];
int i;
gets(a);

for(i=0;*(a+i)!='\0';i++)
*(b+i)=*(a+i);
printf("string a is: %s\n",a);
printf("string a is: ");
puts(b);
printf("\n");
return 0;
}
不知道错哪?请大虾指点!

搜索更多相关的解决方案: C语言  

----------------解决方案--------------------------------------------------------
汗,非要这么写么?我也不知道错哪里啊..为什么不换个简单容易又肯定对的方式呢?
----------------解决方案--------------------------------------------------------
for(i=0;*(a+i)!='\0';i++)
*(b+i)=*(a+i);
改成:
for(i=0; ;i++)
{
*(b+i)=*(a+i);
if(*(a+i)=='\0')break;
}
----------------解决方案--------------------------------------------------------

b数组中未加字符串结束符'\0',应改为:
#include <stdio.h>
#include <string.h>
int main (void)
{
char a[20],b[20];
int i;
gets(a);

for(i=0;*(a+i)!='\0';i++)
*(b+i)=*(a+i);
*(b+i)='\0';
printf("string a is: %s\n",a);
printf("string a is: ");
puts(b);
printf("\n");
return 0;
}


----------------解决方案--------------------------------------------------------

b数组中未加字符串结束符'\0',应改为:
#include <stdio.h>
#include <string.h>
int main (void)
{
char a[20],b[20];
int i;
gets(a);

for(i=0;*(a+i)!='\0';i++)
*(b+i)=*(a+i);
*(b+i)='\0';
printf("string a is: %s\n",a);
printf("string a is: ");
puts(b);
printf("\n");
return 0;
}


----------------解决方案--------------------------------------------------------
楼上正解!
----------------解决方案--------------------------------------------------------
  相关解决方案