在c中生成随机字符串

时间:2017-12-19 15:33:09

标签: c arrays string

在这段代码中,我生成了特定范围内的随机数,但我希望数组的输出必须是

m1,m1,m3,m1 ..

我的意思是在每个随机生成的数字上添加“host”这个词,请问这个怎么办? 这是代码

#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main (int argc, char *argv[])
{
  int a[50];

  srand(time(NULL));

      a[i] = rand() % (3 + 1 - 1) + 1 ;
      printf( " %d\n", a[i]);

}

1 个答案:

答案 0 :(得分:3)

在您的代码中,a是一个整数数组,因此它无法保存字符串值

  • 如果您只想 打印该值,请在host本身的格式字符串中使用printf(),例如

     printf( "No. of random selected node = host%d\n", a[i]);
    
  • 如果您希望生成值并使用,请以某种方式使用缓冲区并使用snprint()填充内容。

     snprint(buf, 8, "host%d", a[i]);
    

    以上内容会将host101host103等值添加到buf中,作为字符串。请注意,在这种情况下,buf必须足够大才能保留提供的尺寸(8。)

    注意:切勿在上面的代码中使用像8这样的幻数,仅用于说明,使用MACRO定义,至少