c++ - 从 C++ 函数返回字符串数组

标签 c++ arrays string vector

我在 C++ 中处理字符串数组时遇到问题。我尝试了以下两种方法。仍然 无法解决问题...事情是这样的: 当我使用时:

string* fun(string* a,string*b) 
{
    string c[];
    return c; /* c is string array type*/ 
} 

它返回存储在字符串数组 c 中的第一个字符串。我希望返回整个字符串数组。 当我使用时:

vector<string> fun(vector<string> a,vector<string> b){
    vector<string> c;
    return c;
}

仍然,我遇到了一些错误。
你能帮我知道这两种情况的问题出在哪里吗? 需要进行哪些修改才能获得所需的结果。 如何在 C++ 中处理字符串数组。 提前感谢!!

最佳答案

在第一个版本中,您将返回一个指向局部变量(您的数组)的指针,当您离开作用域时,该变量将不再存在。您需要在堆上创建数组,例如使用mallocnew。如果您手动分配它,请不要忘记取消分配它。

在第二个版本中,您将返回函数中声明的 vector 的拷贝(如果您修改返回的 vector 中的字符串) code>,它们不会在 ab 中被修改)。您正在创建一个空的 vector ,并且没有在其中添加任何内容,因此它不会包含任何字符串

关于c++ - 从 C++ 函数返回字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11008759/

相关文章:

c++ - 大类小类

c# - 从返回 int 的非托管代码中获取外部函数是否安全

java - 在 java 中创建交替数组方法,你能告诉我哪里出错了吗?

c - 将 char 字符串解析为 INT C 编程

r - 根据列中的字符串拆分表

c++ - 实现中断驱动的采样探查器

c++ - 什么是 C++ 委托(delegate)?

java - 获取类的数组列表的索引。 java

python - 使用 numpy 在 python 中执行 varimax 旋转

python - 为什么索引超出范围的子字符串切片有效?