/** *求一字符串所有字串的组合 */ #include <stdio.h> #include <string.h> void str_combine(char src[],char out[], int leng, int rec, int start) { int i; for(i=start;i<leng;i++){ out[rec]=src[i]; out[rec+1]='\0'; printf("%s ",out); if(i<leng-1) str_combine(src,out,leng,rec+1,i+1); } } int main() { char src[] = "hart"; int leng = strlen(src); char out[sizeof(src)]={0}; str_combine(src,out,leng,0,0); printf("\n"); return 0; }