c - 如何从递归函数返回字符串数组?

标签 c arrays string

如何从递归函数返回字符串数组?

例如::

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/

相关文章:

php - 在网站结构中找到 "orphan"文件

无法转发声明 typedef?

c - c 中的指针和函数

C、在C中打印字符指针的大小

c - 反转函数数组字符串

string - 如何在 Delphi/Pascal 中执行多行逐字字符串

c - 如何检查当前是否有任何线程正在运行

arrays - 使用 For each Statement 循环遍历 VBA Excel 中的多维数组 - 仅第一维

用于打印 SIMPLE 的 Javascript 函数

ios - 如何在 Swift 中创建动态字符串?