关于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;
}
----------------解决方案--------------------------------------------------------
楼上正解!
----------------解决方案--------------------------------------------------------