如何使用C语言从26个字母中随机选择单词?

如何使用C语言从26个字母中随机选择单词?,c,C,我想要随机选择26个字母中有意义或无意义的单词的代码。这个词包含6个字母。我有C程序或目标C的代码,否则你会给我任何想法 #include <stdio.h> #include <stdlib.h> #include <time.h> /* Written by kaizer.se */ void randword(char *buf, size_t len) { char alphabet[] = "abcdefghijklmnopqrstuvxyz"

我想要随机选择26个字母中有意义或无意义的单词的代码。这个词包含6个字母。我有C程序或目标C的代码,否则你会给我任何想法

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

/* Written by kaizer.se */
void randword(char *buf, size_t len)
{
  char alphabet[] = "abcdefghijklmnopqrstuvxyz";
  size_t i;

  for (i = 0; i < len; i++) {
    size_t idx = ((float)rand()/RAND_MAX) * (sizeof(alphabet) -1);
    buf[i] = alphabet[idx];
  }
  buf[len] = '\0';
}

int main(void) {
  char buf[1024];

  srand(time(NULL));

  randword(buf, 7);
  printf("Word: %s\n", buf);
  return 0;
}
根据口味加盐

更新0
似乎OP不知道如何编译上述内容。如果保存到一个名为so.c的文件中,请使用make so CFLAGS=-std=c99从同一文件夹中编译它。

可以重复字母吗?到目前为止你试过什么?还有,这是家庭作业吗?这不是家庭作业,而是我在iphone sdk中的目标c中的项目工作。。请帮帮我。。字母也可以重复。所以请帮助我注意,这需要一个连续的字母序列a到z作为字符集的单个区域。这对于99.9%的环境来说是正确的,但这不是标准的要求,我在一台机器上工作,但它不是正确的——该死的EBCDIC。我也不太喜欢裸电源——我更喜欢两个标准版本中的一个,在这种情况下可能是int mainvoid。这两个都不值得投反对票,我想我会提到它们。哦,是的,你可能会有一些肛门保留型坚持认为randnum%26扭曲了分布,因为randnum的可能性不是26的精确倍数。别理他们。这对严肃的统计学家和密码学家来说可能很重要,但绝大多数人对此毫不在意:-@paxdiablo:这只是一个例子,重点是故意不在main的签名上。我也同意你关于歪斜的评论。这真的没关系。
$ ./rword 
Word: xoilfvv
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

main()
{
    srand(time(NULL));
    for (int i = 0; i < 6; ++i)
    {
        putchar('a' + (rand() % 26));
    }
    putchar('\n');
    return EXIT_SUCCESS;
}