1. 程式人生 > >讀取一個字串,輸出它裡面字元的所有組合

讀取一個字串,輸出它裡面字元的所有組合

例如: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); }