【问题标题】:What is wrong with this string program?这个字符串程序有什么问题?
【发布时间】:2013-08-14 00:48:43
【问题描述】:

我正在使用三个字符串,然后仅使用 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 函数的输出。为什么复制表达式不起作用/无法显示?

【问题讨论】:

    标签: string loops for-loop copying


    【解决方案1】:

    你的 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';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-04
      • 1970-01-01
      • 2019-11-09
      • 2010-12-31
      • 1970-01-01
      相关资源
      最近更新 更多