📅  最后修改于: 2023-12-03 14:51:24.330000             🧑  作者: Mango
在C++中,有多种方法可以返回字符串数组(string array)的函数。字符串数组是由多个字符串元素组成的数据结构。以下将介绍几种常用的返回字符串数组的方法。
可以使用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++中返回字符串数组的几种常用方法。根据实际情况和需求,选择合适的方法来返回字符串数组。