1
我需要遍历从aaaaaaaa到zzzzzzzz的一系列8个字符的字符串,类似于蛮力攻击。现在,我有嵌套循环以下乌七八糟做到这一点:划分关键字搜索
int start = 97;
int range = 25;
int a;
for(a = start; a <= start+range; a++) { //1
strb[0] = a;
for(b = start; b <= start+range; b++) { //2
strb[1] = b;
for(c = start; c <= start+range; c++) { //3
strb[2] = c;
for(d = start; d <= start+range; d++) { //4
strb[3] = d;
for(e = start; e <= start+range; e++) { //5
strb[4] = e;
for(f = start; f <= start+range; f++) { //6
strb[5] = f;
for(g = start; g <= start+range; g++) { //7
strb[6] = g;
for(h = start; h <= start+range; h++) { //8
strb[7] = h;
check(str);
tot++;
}
}
}
}
}
}
}
}
尽管此代码非常适用于整套的搜索空间,我也需要划分成小片搜索,以使用多个线程执行并发搜索操作。例如。我希望能够搜索搜索空间的第三个1/25,或者说,第二个1/15。
我需要以某种方式展开这个嵌套循环到一个来实现,但我无法弄清楚如何。我使用C.任何帮助表示赞赏,在此先感谢。
为了避免“可怕的嵌套循环混乱”学习递归程序。 – EoiFirst
为了避免递归编程,学习如何将它变成一个循环。理解for循环比递归更容易,并且更容易使用资源。 –