有什么方法可以在函数调用中构造字符串数组?例如,说我有一个像这样的函数:
void foo( char * [] strings )
{
//...does stuff
}
而不是先声明字符数组然后再传递它,有没有办法使用数组或任何其他容器类来像这样调用函数?
foo( { "a", "b", "c", ...} );
基本上,我有一个函数提示用户输入,直到它与我传递的数组中的字符串之一匹配为止,由于在整个程序中都发生了变化,因此我将接受的输入传递给提示用户并验证输入的函数。目前,我只是在函数外部构造它并传递它,但想知道是否可以将它们以任何方式组合为一行
最佳答案
这在C99中有效:
void fun(char *argv[])
{
while(*argv)
printf("%s\n", *argv++);
}
fun((char*[]){"aaa", "bbb", NULL});
由于您提到“容器”,因此您可能使用
C++
,所以此答案的价值有限(除非您使用的是接受它作为扩展名的编译器-例如GCC的方式)。关于c++ - 是否可以在函数调用中构造和传递数组/其他容器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7789333/