字符串的所有子串的各种组合的递归算法的代码看不大懂啊,高人来解释一下啊,谢谢
#include <stdio.h>
#include <string.h>
#include <alloc.h>
char str[ ] = "abcd";
char *out;
int length;
void decombine(char in[],char out[],int length,int rec,int start)
{
int i;
for(i=start;i<length;i++)
{
out[rec] = in[i];
out[rec+1] = '\0';
printf("%s%d\n",out,i);
if(i<length-1)
decombine(in,out,length,rec+1,i+1);
}
}
int main( )
{
length = strlen(str);
out = (char *)malloc(length+1);
decombine(str,out,length,0,0);
return 0;
}
看了很久了,还是不大懂啊,,,5555555,高人来解释一下哈