gpt4 book ai didi

存储在字符串中的字符 - 如何在随机化时将它们存储在另一个字符串变量中

转载 作者:太空宇宙 更新时间:2023-11-04 08:10:22 25 4
gpt4 key购买 nike

美好的一天!我是一名新手程序员,我仍然对如何应用 C 的概念感到困惑。

我正在做一个项目。我的问题是我已经初始化了某些字符并将它们存储在一个字符串 (vars[28]) 中。我的目标是以随机方式生成字符串的字符并将生成的字符串存储在另一个变量中,我不知道该怎么做。

int randnum = 0, num = 0;
char vars[28] = "|abcdefghijklmonpqrstuvwxyz."; //initialized string
char term; //where to store randomized string
int i = 0;
char choi[1];

printf ("%c", vars[0]);

srand (time(NULL));
randnum = rand() % 30; //only 30 characters maximum to be stored

for (i = 0; i <= randnum; i++)
{
//randomly produce vars[28] characters here and store into 'term'
}

附加问题:我该如何预防 |和 。随机分配时彼此相邻?

谢谢!

最佳答案

term 只是单个 字符。字符串是字符的数组。标准 C 字符串以 0 结尾。因此,为了创建随机字符串,您的程序应如下所示:

int randnum = 0;
char* vars = "|abcdefghijklmonpqrstuvwxyz."; // array of alowed characters
char term[30 + 1]; // allocating an array of 30 characters + 1 to hold null terminator
int i = 0;

srand (time(NULL));
int length = rand() % 30 + 1; // random length up to 30, minimum 1 character (the +1)

for (i = 0; i < length; i++)
{
randnum = rand() % 28; // random index to the array of allowed characters
term[i] = vars[randnum]; // assign random character to i-th position of term
}
term[i] = '\0'; // end string

printf("%s\n", term);

不过,我强烈建议您继续学习 C 语言的讲座 - 前几章(顶部),应该可以清除所有内容!

关于存储在字符串中的字符 - 如何在随机化时将它们存储在另一个字符串变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40031161/

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