gpt4 book ai didi

c - 制作一个字符数组

转载 作者:行者123 更新时间:2023-11-30 19:23:10 24 4
gpt4 key购买 nike

我有一个问题,我必须创建一个字符数组,从一个字符开始,在所有字符用完后,创建 2 位数字,当它们用完时,创建 3 位数字,等等。所以这里是我该怎么做:

char myChar = malloc(8);

for (int i = 0; i < 25; i++)
{
mychar[i] = i + 'a';
}

当 1 个字符的单词用完时,我不知道该去哪里。嵌套 for 循环?如何添加字符?使用 strcat()?

编辑:抱歉,如果我的问题不清楚。基本上它是制作一个暴力哈希破解器的任务。我有一个部分正在工作,比较字符串正在工作,唯一的问题是这个东西生成符号。这是如何工作的 - 我创建一个单词,将其发送到 has function 并使用目标哈希检查结果。如果它们相同,瞧。所以在这里我尝试创建一个从 1 个字符开始向上的字符数组。所以我制作“a”,检查它,如果没有效果,我将其更改为“b”,依此类推,直到“z”。当我到达“z”时,我希望它以 2 个字符重新开始,“aa”,然后“ab”,然后“ac”直到“zz”。当这个用完时,我希望它以“aaa”开头,然后是“aab”等等,最多 8 位数字。我知道这将花费大量时间。但我面临的问题是字符的串联。我如何编写一个循环,以便在第一轮中只有一个符号,在第二轮中只有两个符号,依此类推。我希望这能解释一点。

最佳答案

以下代码使用嵌套循环。外层循环是无限的;将其替换为您需要的长度的环。内部循环将字符串更改为下一个:“aa”更改为 ba”,“ba”更改为“ca”,...,“zz”更改为“aaa”等。它更改字符串中的各个字符,而不是使用strcat

请注意,输出看起来有点向后;我想这还不错,因为检查所有猜测的顺序并不是很重要,只要你检查了所有的猜测即可。

char str[100] = ""; // initialize all characters to '\0'
char min = 'a';
char max = 'z';
for (;;)
{
int i;
int increase_length = 1; // a flag to detect transitions like "zzz" => "aaaa"
for (i = 0; str[i] != '\0'; ++i)
{
if (str[i]++ == max) // change to next character and check whether it was 'z'
{
str[i] = min;
}
else
{
increase_length = 0;
break;
}
}
if (increase_length)
str[i] = min;
puts(str);
}

关于c - 制作一个字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13478479/

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