我試圖將字符串向量轉換爲C++中的字符數組。將字符串向量轉換爲C++中的字符數組
更具體是什麼,我試圖做的是通過這個拆分如「ls -latr」 shell命令:
istringstream f(x);
while (getline(f, x, ' '))
{
strings.push_back(x);
}
相信會給我strings[0] == "ls"
和strings[1]==" -latr"
。
我試圖然後執行以下操作:
execvp(strings[0], strings);
不過,我得到這個錯誤:
error: cannot convert ‘std::basic_string, std::allocator >’ to ‘const char*’ for argument ‘1’ to ‘int execvp(const char*, char* const*)’
因此,我試圖找出如何我可以轉換的字符串到一個char數組。
將'.c_str()'添加到strings [0]的末尾;你仍然需要爲第二個參數構建另一個指針向量。 – Kal
假設字符串是'std :: vector',使用'strings [0] .c_str()'。第二個參數需要一個指針數組,所以這更復雜。 –
Roddy
而不是getline,你可以簡單地說'while(f >> x){strings.push_back(x); }'。 –