讀取一個字串,輸出它裡面字元的所有組合
阿新 • • 發佈:2019-02-13
例如:abc,它的所有字元組合為a,b,c,ab,ac,bc,abc
對於這種型別的題,想到的第一思路就是採用遞迴進行求解。
首先我們申請一個與所求字串一樣大小的字元陣列s,用於儲存各個字元的組合。
對於abc這樣字串的進行遞迴實現:
a,ab,abc,ac,b,bc,c
實現程式碼:
#include <stdio.h>
#include <string.h>
int Recursion(char *str,char *s, int len,int m,int n){
int i,j;
int flag;
for(i = n; i < len; i++){
if (i > n){//當i>n說明,遞迴結束
m--;
}
s[m] = str[i];
s[++m] = '\0';
printf("%s ",s);
if(i < len-1)
Recursion(str, s, len,m,i+1);
}
}
int main(void){
int len,i,j,m;
char s[6]={0};
char *str = "12345";
len = strlen(str);
Recursion(str ,s,len,0,0);
}