#include <iostream>
#include <cstring>
using namespace std;
char array[21];
void func(int i,char *temp)
{
char retemp[21];
strcpy(retemp,temp);
if(i==strlen(array))
{
cout<<"("<<temp<<")";
return ;
}
else
{
func(i+1,retemp);
strncat(retemp,(array+i),1);
func(i+1,retemp);
}
}
int main()
{
int n;
char temp[21]={0};
cin>>n>>array;
func(0,temp);
return 0;
}
#include <cstring>
using namespace std;
char array[21];
void func(int i,char *temp)
{
char retemp[21];
strcpy(retemp,temp);
if(i==strlen(array))
{
cout<<"("<<temp<<")";
return ;
}
else
{
func(i+1,retemp);
strncat(retemp,(array+i),1);
func(i+1,retemp);
}
}
int main()
{
int n;
char temp[21]={0};
cin>>n>>array;
func(0,temp);
return 0;
}
本文介绍了一个使用C++实现的字符串组合遍历算法。该算法通过递归调用的方式生成给定字符串的所有可能组合,并将这些组合打印出来。文章包含完整的代码示例,有助于理解递归函数的工作原理及字符串操作技巧。
371

被折叠的 条评论
为什么被折叠?



