4

c++ で文字列ベクトルを char 配列に変換しようとしています。

より具体的には、これを使用して「ls –latr」のようなシェル コマンドを分割することです。

istringstream f(x);
while (getline(f, x, ' '))
{
    strings.push_back(x);
}

strings[0] == "ls"私はそれが私に与えると信じていますstrings[1]==" -latr"

私は次のことをしようとしています:

execvp(strings[0], strings);

ただし、次のエラーが発生します。

エラー: 引数 '1' の 'std::basic_string, std::allocator >' を 'const char*' に変換できません 'int execvp(const char*, char* const*)' </p>

したがって、文字列をchar配列に変換する方法を見つけようとしています。

4

3 に答える 3

1

c_str()の方法で試すことができstd::stringます。クラスから C ライクな文字列std::string、つまり char * を返しますexecvpe詳細については、このリンクを確認してください。

于 2013-10-20T20:34:25.233 に答える
0

char配列が変更されない場合は、使用できます

strings[0].c_str()
于 2013-10-20T20:34:54.850 に答える