gpt4 book ai didi

c - 在C中生成随机字母

转载 作者:行者123 更新时间:2023-12-02 06:52:13 25 4
gpt4 key购买 nike

这是我的代码。我正在尝试生成随机字母表,但我看到了相同的字母。示例:(YHTGDHFBSHXCHFYFUXZWDYKLXI) 我该如何解决?只是我需要混合字母而不是相同的字母。非常感谢。

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

void random_string(char * string, unsigned length)
{
/* Seed number for rand() */
srand((unsigned int) time(0));


int i;
for (i = 0; i < length; ++i)
{
string[i] = rand() % 26 + 'A';
}

string[i] = '\0';
}

int main(void)
{
char s[26];
random_string(s, 26);
printf("%s\n", s);
return 0;
}

最佳答案

您要查找的操作称为洗牌排列。调用随机字母函数 26 次是不够的,因为如您所见,您可以生成重复项。

相反,从字符串 "ABCDEFGHIJKLMNOPQRSTUVWXYZ" 开始并执行随机播放操作。如果您想通过从头开始做这些事情来学习,我建议您阅读 Fisher-Yates Shuffle然后自己设计一个实现。

关于c - 在C中生成随机字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40769915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com