void getParameters(char *query) {
vector<string> temp;
vector<string> elements;
for (int i = 0; i < 10; i++)
{
if (query[i] == '\0') {
temp.push_back('\0');
// Here I want to convert temp values to string and append it to elements
elements.push_back(temp);
break;
}
if (query[i] == ' ')
{
temp.push_back('\0');
elements.push_back(temp);
temp.clear();
continue;
}
temp.push_back(query[i]);
}
}
我想将 temp vector 的所有值作为字符串附加到 elements vector 。
例如:
temp[0] = "t";
temp[1] = "e";
temp[2] = "s";
temp[3] = "t";
temp[4] = "\0";
结果:
elements[0] = "test";
我不知道查询的长度,所以这就是我为temp使用 vector 的原因。
查询的例子:
select id from user
最终结果应该是:
elements[0] = "select";
elements[1] = "id";
elements[2] = "from";
elements[3] = "user";
最佳答案
std::vector<std::string> getParameters(const char *query)
{
std::vector<std::string> elements;
std::stringstream ss(query);
std::string q;
while (ss >> q)
elements.push_back(q);
return elements;
}
然后,
char *s="select id from user";
std::vector<std::string> elements= getParameters(s);
参见 HERE
关于c++ - 将字符串 vector 转换为 *char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20302153/