阅读背景:

字符字串;_没有撤退可言~的博客

来源:互联网 
面试例题1:请编写-一个函数,把字符串中的所有字符子串的各种组合形式全部都显示出来。字符子串的长度范围是从一个字符到
字符串的长度。不管排列顺序如何,只要两种组合中的字符完全一样, 它们就是同一种组合。比如:给定字符串"hart”, 
则“ha” 和“har” 是不同的组合,而“ha”和“ah"是相同的组合。
#include<iostream>
using namespace std;
void func(char a[], char p[], int length, int res, int start)
{
 	for (int i = start; i < length; i++)
 	{
 	 	p[res] = a[i];
  		p[res + 1] = 0;
  		printf("%s\n", p);
  		if (i < length - 1)
  		{
  		 	func(a, p, length, res + 1, i + 1);
  		}
 	}
}
int main()
{
 	char a[] = "hart";
 	int length = strlen(a);
 	char *p = (char *)malloc(length + 1);
	func(a, p, length, 0, 0);
 	return 0;
}


结果:
h
ha
har
hart
hat
hr
hrt
ht
a
ar
art
at
r
rt
t
面试例题1:请编写-一个函数,把字符串中的所有字符子串的各种组合形式全部都显示出



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: