来自剑指offer,关于字符排列的延伸题目
输入一个字符串,例如“abcd”,输出所有字符的组合
1 #include "stdafx.h" 2 #include <iostream> 3 using namespace std; 4 /********************START COMBINATION**********************/ 5 //输入一个字符串,例如“abcd”,输出所有字符的组合 6 char c[24]; 7 void dolistcombination(char *pbegin,char *s,int k) 8 { 9 if(k == 0){ 10 *s ='\0'; 11 printf("%s \n",c); 12 } 13 else{ 14 for(char *ch = pbegin;*ch != '\0'; ch++,pbegin++){ 15 *s = *ch; 16 dolistcombination(pbegin+1,s+1,k-1); 17 } 18 } 19 } 20 //字母组合的入口函数 21 void combination(char *str) 22 { 23 for(int i=0;i <sizeof(str)+1;i++) 24 dolistcombination(str,c,i); 25 }