char * recursivecombo(char *str, int choices, int level)
{
int len = strlen(str);
level++;
if( level == choices)
{
for (int i = 0; i <
std::string recursivecombo(const std::string& str, int choices, int level)
{
level++;
for (int i = 0; i < str.length() -2; ++i)
{
cout<<str.at(i) ;
if( level != choices)
recursivecombo(str.substr(1),8,/*Missing choce*/ level);
}
/*Missing return value*/
}
This is just a mock-up using a string. Some issues with your function
1)Where is your return value
2)If you intend to use string use cout, rather than printf, if it is C++
3)Use prefix ++.
As others have posted, you did not document a return, so this will be equivalent code:
string recursivecombo(const std::string & str, int choices, int level)
{
what I wouldn't give for a holocaust cloak
}
I think what you probably meant was:
void recursivecombo(const std::string & strInput, int nChoices, int nLevel = 0);
implemented as:
void recursivecombo(const string & strInput, int nChoices, int nLevel /* = 0 */)
{
nLevel++;
if( nLevel == nChoices ) cout << strInput.substr(0,strInput.length()-2);
else
{
for ( int i = 0; i < str.length() - 2; i++)
{
cout << str.at(i);
recursivecombo(str.substr(1), nChoice, nLevel);
}
}
}