gpt4 book ai didi

c - 查找随机文本的所有大写字母组合

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

在 C 中,我有一个 char 数组,其中包含随机数字和没有大写字母的字母。我需要弄清楚如何生成所有可能的组合,包括大写字母,同时保持数字不变,但我什至不确定从哪里开始。 (例如 abc123、Abc123、aBc123、abC123、ABc123、AbC123、aBC123、ABC123)

最佳答案

确实有 2^n 种可能性,n 表示您的 char 数组中的字母字符数量。

为了解决你的问题,我建议你看看recursion ,我想这是实现你想做的事情的最简单方法,你只需要与平时有一点不同的想法。

编辑:这是一些实现

void enumerate(char *str, int n)
{
printf("%s\n", str); // Print one solution
while (++n < strlen(str)) // Loop while you don't reach the end
if (str[n] > 96 && str[n] < 123) // Check if str[n] is alphabetic
{
char *tmp = calloc(strlen(str) + 1, sizeof(char));
strcpy(tmp, str); // Create a copy of the initial string
tmp[n] -= 32; // Put tmp[n] = str[n] in uppercase
enumerate(tmp, n); // Call recursion with new string and current position
}
}

你这样调用它

enumerate("abc123", -1);

结果在

abc123
Abc123
ABc123
ABC123
AbC123
aBc123
aBC123
abC123

关于c - 查找随机文本的所有大写字母组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30404757/

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