c++ - 将字符串 vector 转换为 *char

标签 c++ vector

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::stringstream

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/

相关文章:

c++ - 为什么 Microsoft std::vector::insert 使用 rotate()?

c++ - 如何快速搜索项目中所有包含的头文件以查找特定符号?

c++ - 如何使用带有 C++ 的 ogr 库在 ESRI shapefile 中提取几何图形的顶点

c++ - 列表元素被替换而不是插入

c++ - 引用、 vector 、std::vector::at 和易于使用的接口(interface)

algorithm - 有效地找到从 1 到 10^6 的所有数字的所有约数

c++ - 访问 CUDA 中的共享内存

c++ - 使用 C/C++ 使用 AES 加密-解密

c++ - 是vector.push_back(vector.back()+ 1)未定义的行为吗?

c++ - 在 vector 中插入元素会损坏指向 vector 的指针吗?