gpt4 book ai didi

c - C 中的字母数字字符串生成

转载 作者:行者123 更新时间:2023-11-30 21:45:04 24 4
gpt4 key购买 nike

谁能给我一个完整的例子来说明如何随机生成字母数字字符串就像使用 C 的 (ARG534UJ6) ?我对 C 完全陌生。

void gen_random(char *s, const int len) {
static const char alphanum[] =
"0123456789"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz";

for (int i = 0; i < len; ++i) {
s[i] = alphanum[rand() % (sizeof(alphanum) - 1)];
}

s[len] = 0;
}

这不起作用。

最佳答案

正如 #IngoLeonhardt 所指出的,使用 % (sizeof(alphanum) - 1) 而不是 % sizeof(alphanum)

我的猜测是您没有空间容纳字符串,请尝试:

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

void gen_random(char *s, const int len) {
static const char alphanum[] =
"0123456789"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz";

for (int i = 0; i < len; ++i) {
s[i] = alphanum[rand() % (sizeof(alphanum) - 1)];
}

s[len] = 0;
}

int main(void)
{
char *str = malloc(8 + 1);

/* initialize random seed: */
srand(time(NULL));
gen_random(str, 8);
printf("%s\n", str);
free(str);
return 0;
}

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

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