📜  在函数c ++中返回字符串数组(1)

📅  最后修改于: 2023-12-03 14:51:24.330000             🧑  作者: Mango

在C++中,有多种方法可以返回字符串数组(string array)的函数。字符串数组是由多个字符串元素组成的数据结构。以下将介绍几种常用的返回字符串数组的方法。

方法一:使用vector返回字符串数组

可以使用C++标准库中的vector容器,其中的元素类型为string,在函数中返回一个vector类型的对象,即可实现返回字符串数组的功能。

#include <iostream>
#include <vector>
using namespace std;

vector<string> getStringArray() {
    vector<string> arr;
    arr.push_back("Hello");
    arr.push_back("World");
    arr.push_back("This");
    arr.push_back("is");
    arr.push_back("a");
    arr.push_back("string");
    arr.push_back("array");
    return arr;
}

int main() {
    vector<string> result = getStringArray();
    for (string str : result) {
        cout << str << " ";
    }
    return 0;
}

输出结果为:

Hello World This is a string array
方法二:使用数组指针返回字符串数组

可以使用数组指针作为函数的返回类型,其中元素类型为char*,来返回一个C风格的字符串数组。

#include <iostream>
using namespace std;

char** getStringArray(int& size) {
    char** arr = new char*[5];
    arr[0] = "Hello";
    arr[1] = "World";
    arr[2] = "This";
    arr[3] = "is";
    arr[4] = "a";
    size = 5;
    return arr;
}

int main() {
    int size;
    char** result = getStringArray(size);
    for (int i = 0; i < size; i++) {
        cout << result[i] << " ";
    }
    delete[] result;
    return 0;
}

输出结果为:

Hello World This is a

这种方法需要注意释放内存,需要手动删除动态分配的字符串数组。

方法三:使用字符串指针数组返回字符串数组

可以使用字符串指针数组作为函数的返回类型,来返回一个字符串数组。

#include <iostream>
using namespace std;

const char* const* getStringArray() {
    const char* arr[] = {
        "Hello",
        "World",
        "This",
        "is",
        "a",
        "string",
        "array"
    };
    return arr;
}

int main() {
    const char* const* result = getStringArray();
    for (int i = 0; i < 7; i++) {
        cout << result[i] << " ";
    }
    return 0;
}

输出结果为:

Hello World This is a string array

这种方法中,改变字符串指针指向的字符串会导致不可预知的行为,因此需要小心使用。

以上是在C++中返回字符串数组的几种常用方法。根据实际情况和需求,选择合适的方法来返回字符串数组。