我正在尝试找到字符串的所有可能的子序列。例如“abc”在这个字符串中我们会找到总共8个字符串2^3=8组合。如 a、b、c、ab、ac、bc、abc '\0'。 但我的代码只打印字符串的所有字符。我怎样才能做到这一点?
#include <stdio.h>
#include <stdlib.h>
int main()
{
char string[1000];
int count, i;
gets(string);
int len = strlen(string);
for(i=0; i<len; i++) {
printf("%c ", string[i]);
}
return 0;
}
最佳答案
据我了解,您需要一个完全不同的循环。您将循环遍历字符串中的所有位置i
;每个位置的字符要么被打印,要么不被打印。这个问题可以通过递归来解决,这可能比迭代方法更容易。
关于c - 查找并计算字符串的所有子序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23855270/