如何从递归函数返回字符串数组?
例如::
char ** jumble( char *jumbStr)//reccurring function
{
char *finalJumble[100];
...code goes here...call jumble again..code goes here
return finalJumble;
}
提前致谢。
最佳答案
在 C 中,您不能从函数返回一个字符串。您只能返回指向字符串的指针。因此,您必须将要返回的字符串作为参数传递给函数(不要使用全局变量或函数局部静态变量),如下所示:
char *func(char *string, size_t stringSize) {
/* Fill the string as wanted */
return string;
}
如果你想返回一个字符串数组,这就更复杂了,尤其是当数组的大小变化时。最好的恕我直言可能是返回同一个字符串中的所有字符串,连接字符串缓冲区中的字符串,并用一个空字符串作为最后一个字符串的标记。
char *string = "foo\0bar\0foobar\0";
您当前的实现不正确,因为它返回一个指向在局部函数范围内定义的变量的指针。
(如果你真的做 C++,那么返回一个 std::vector<std::string>
。)
关于c - 如何从递归函数返回字符串数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3140405/