gpt4 book ai didi

c - 遍历 C 中字符串的每个可能值?

转载 作者:行者123 更新时间:2023-11-30 21:04:29 25 4
gpt4 key购买 nike

如何在 c 中遍历字符串的每个可能值?这包括字符,如“&”、“%”或“/”。例如,3 个字符的字符串可以是“aaa”、“a$f”、“acg”等。

最佳答案

如果您预先知道限制,并且限制较低,则可以使用嵌套循环。例如,对于三个字符的字符串,使用三个嵌套循环,如下所示:

char str[4] = "---";
for (str[0] = ' ' ; str[0] <= 'z' ; str[0]++) {
for (str[1] = ' ' ; str[1] <= 'z' ; str[1]++) {
for (str[2] = ' ' ; str[2] <= 'z' ; str[2]++) {
printf("%s\n", str);
}
}
}

如果您事先不知道长度,则需要使用递归。这个想法是在每一级递归调用中实现一个循环,并在达到所需深度时终止。

char *str = new malloc(n+1);
str[n] = '\0';
all_strings(str, n-1);

void all_strings(char *str, int n) {
if (n == -1) {
printf("%s\n", str);
} else {
for (str[n] = ' ' ; str[n] <= 'z' ; str[n]++) {
all_strings(str, n-1);
}
}
}

关于c - 遍历 C 中字符串的每个可能值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12549045/

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