将字符串从一个数组移到另一个数组

时间:2020-06-20 18:46:53

标签: c string

我必须创建一个程序,在其中生成一个随机数,然后将该数字假定为数组“ article”的索引。我必须将存在于该索引处的字符串保存在另一个数组“ hold”中。但是,这似乎不起作用。我犯了什么错误?

#include<stdio.h>
#include<string.h>
int main()
{
   char *article[]={"the","a","one","some","any"};
   int x;
   char hold[20];
   x=1+rand()%5;
   article[x]=hold;
   printf("\n%s",hold);
}

1 个答案:

答案 0 :(得分:4)

1+中的x=1+rand()%5;是什么。如果将x用作article的索引,则它应介于0和4之间(含0和4)。因此,您应该使用x=rand()%5;

然后您article[x]=hold;期望hold将包含所选文章。您可能是说hold=article[x];

但是您将char hold[20];定义为打算在此复制,所以您可能是指hold=strcpy(hold, article[x]);

最后我注意到您将换行符放在行的前面而不是printf("\n%s",hold);的后面。您是说printf("%s\n",hold);吗?

供您参考,可以像这样重写整个main()函数:

   char *article[]={"the","a","one","some","any"};
   printf("%s\n",article[rand()%5]);

但是如果您像这样保持分开的步骤,则更容易阅读。

相关问题