这确实是一项任务,但我被卡住了,这可能只是我没有得到的措辞。
创建一个具有可变数量参数的函数,该函数在其余参数中搜索作为第一个参数提供的子字符串。此函数将返回一个向量,其中包含包含子字符串的所有参数
这是我到目前为止所拥有的:
#include <iostream>
#include <string>
#include <algorithm>
#include <stdarg.h>
#include <vector>
using namespace std;
vector<string> search(string str, ...);
int main (){
va_list arguments;
char contin = 'y';
string str;
va_start(arguments, str);
cout << "Enter a string that will be searched for in the rest of the strings: ";
str += va_arg(arguments, str);
while(contin == 'y'){
cout << "Enter a string that will be searched in: ";
str += va_arg(arguments, str);
cout << endl << "Enter \''y\'' to continue or \''n\'' to end to start seach:" << endl;
cin >> contin;
}
va_end(arguments);
search(arguments);
return 0;
}
vector<string> search(string str, ... ){
va_list containing;
va_start (containing, str);
if (std::find(str.begin(), str.end(), str.front()) != str.end()){
str += va_arg(containing, str);
}
return containing;
}
我收到这些错误:第 37 行:“str += va_arg(containing, str);” -error C2059:语法错误:')'
第 40 行:“返回包含;” - 错误 C2664: 'std::vector<_Ty>::vector(const std::vector<_Ty> &)' : 无法将参数 1 从 'va_list' 转换为 'const std::vector<_Ty> &'
第 36 行:“if (std::find(str.begin(), str.end(), str.front()) != str.end()){” - 错误 C2039: 'front' : is not a 'std::basic_string<_Elem,_Traits,_Ax>' 的成员
第 21/24 行:“str += va_arg(arguments, str);” - 错误 C2059:语法错误:')'
另外,我是在朝着正确的方向前进还是在做完全错误的事情?