通过引用将字符串数组传递给另一个函数时,如何逐个打印被调用函数中的值(字符串)以及需要在被调用函数的输入参数中声明的参数类型是什么。
答案 0 :(得分:3)
您可以通过引用传递数组,如下所示:
template <int N>
void foo(string (&arr)[N])
{
arr[0] = "a";
arr[1] = "b";
/// Do other stuff with arr
}
现在您可以像常规数组一样使用arr
。需要的模板参数N
是一个大小为i
且大小为j
的数组,在i!=j
时是不同的类型。
答案 1 :(得分:0)
void output_function(string str[])
并使用str作为普通数组。
答案 2 :(得分:0)
这是一种方法:
void Func(const std::string* stringArr, int arraySize) {
for ( int n = 0; n < arraySize; ++n ) {
const std::string& sz = stringArr[n];
}
}
std::string array[10];
Func(array, 10); // here array decays to pointer to its first element
答案 3 :(得分:0)
#include <iostream>
using namespace std;
string getConcatenate(string arr[], int size)
{
string concatenate;
for (int i = 0; i < size; ++i)
{
concatenate += arr[i];
if (i != size - 1)
concatenate += " ";
}
return concatenate;
}
int main()
{
string balance[6] = { "This", "is", "an", "example", "string", "array" };
string sentence;
sentence = getConcatenate(balance, 6);
cout << "Concatenated value is: " << sentence.c_str() << endl;
getchar();
return 0;
}
此示例说明了,将字符串作为数组发送并返回字符串。
答案 4 :(得分:0)
如果您在如何定义&#34;字符串数组方面有一定的灵活性&#34;我建议你使用标准容器。
如果您的&#34;数组&#34;固定大小使用std::array
,否则使用std::vector
:
void doSomethingWithAnArray(const std::array<std::string, 5>& strings);
void doSomethingWithAVector(const std::vector<std::string>& strings);
然后,访问容器中每个字符串的一种方法是使用基于范围的for循环。例如:
for (auto& str : strings)
std::cout << str << " ";
std::cout << "\n";