gpt4 book ai didi

c - 如何从用户输入的一堆单词中随机选择一个字母

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

我正在尝试创建一个小程序,要求用户输入两个短语。输入两个短语后,我将这些短语显示给用户。然后我将这两个短语放入一个变量中,然后我使用一个变量第三次显示回来。

接下来,我试图尝试从这两个短语中随机挑选一个字母并将该字母显示给用户。

我一直在网上做一些研究,看看人们是如何随机选择字母的,但除了随机选择单词之外,我没有真正看到任何东西,但也没有真正看到如何将其应用到我自己的程序中.

提前致谢。

P.S 我注意到当同时显示这两个短语时,第二个短语在换行符上。谁能解释为什么会发生这种情况以及如何摆脱它?谢谢

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


int main()
{
srand(time(NULL));
char phrase1[100], phrase2[100];
printf("Please enter your first phrase\t");
fgets(phrase1, 100, stdin);
printf("Please enter your second phrase\t");
fgets(phrase2, 100, stdin);
printf("The first phrase you entered was: %s", phrase1);
printf("The second phrase you entered was: %s", phrase2);
strcat(phrase1, phrase2);
phrase1[strlen(phrase1)-1] = ' ';
printf("Both phrases put together in one sentence is: %s", phrase1);
return 0;

}

最佳答案

首先播种 RNG:

srandom(getpid() ^ time(NULL));

然后得到一个0到strlen(phrase)-1之间的随机数:

int rnum = random() % strlen(phrase);

然后打印有问题的字符:

printf("random char: %c\n",phrase1[rnum]);

您在连接的字符串中看到换行符的原因是 fgets 将在您按 Enter 键时生成的换行符添加到字符串中。您可以通过将字符串修剪一个字符来删除它:

fgets(phrase1, 100, stdin);
phrase1[strcspn(phrase1, "\n")] = '\0';
...
fgets(phrase2, 100, stdin);
phrase2[strcspn(phrase1, "\n")] = '\0';

关于c - 如何从用户输入的一堆单词中随机选择一个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32617911/

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