我正在使用三个字符串,然后仅使用for循环将它们放在一个字符串中......
这是代码:
#include<iostream.h>
#include<conio.h>
int main()
{
int i,j,k;
char fn[10]={"Ryan"};
char sn[10]={"Mclaren"};
char ln[10]={"Harris"};
char name[30];
puts(fn); puts(sn); puts(ln);
for(i=0;fn!='\0';i++)
name[i]=fn[i];
puts(name);
for(j=0;sn!='\0';j++)
name[i+j+1]=sn[j];
name[i+j+1]=' ';
for(k=0;ln!='\0';k++)
name[i+j+k+2]=ln[k];
name[i+j+k+2]='\0';
printf("\n%s",name);
getch();
return 0;
}
现在这没有给出任何输出,没有编译错误。 这是输出:
Ryan
Mclaren
Harris
这是puts函数的输出。为什么复制表达不起作用/显示?
答案 0 :(得分:2)
for循环中的条件对我来说看起来不对,你不应该检查当前索引位置的终止零而不是整个东西吗?
类似的东西:
for(i=0;fn[i]!='\0';i++)
name[i]=fn[i];
puts(name);
for(j=0;sn[j]!='\0';j++)
name[i+j+1]=sn[j];
name[i+j+1]=' ';
for(k=0;ln[k]!='\0';k++)
name[i+j+k+2]=ln[k];
name[i+j+k+2]='\0';