【发布时间】:2011-04-17 02:29:21
【问题描述】:
char * recursivecombo(char *str, int choices, int level)
{
int len = strlen(str);
level++;
if( level == choices)
{
for (int i = 0; i < len -2; i++)
{
printf("%c", str[i]) ;
}
}
else
{
for (int i = 0; i < len - 2; i++)
{
printf("%c",str[i]);
recursivecombo(str.substr(1), level);
}
}
}
我想使用字符串而不是 char*。
【问题讨论】:
-
如何在 char* 上执行此 str.substr(1) ?而且,您不会从此函数返回任何内容。在 Java 中这是不可编译的,我不确定 C++ 是如何处理这个的,但我至少会假设一些错误。
-
为什么要使用字符串?它是否比这段代码更好(更快、更小、可读、可移植)?
-
除了上面提出的问题之外,您的代码将无法编译,因为您的递归调用没有足够的参数。
-
如果你修复你当前的代码,让它工作并且可以编译它会更容易帮助转换和改变它。
-
如果 str 是一个字符串,那么 str.substr 应该返回一个字符串。