2

重複の可能性:
C++ での文字列の分割

ブーストを使用できません (多くのトークン化の質問に対する解決策として見てきたように)。まず、入力したコマンドを文字列に配置します。コマンド例:

add (名前、電話番号)

int main()
{
    string line;
    cin >> line;
    cout << "Reservations>>";
    if(line[0] == 'a'){
    }
}

すべてが構文的に正しいこと (括弧とコンマが使用されていること) を確認する必要があります。これを行うには、最初に文字列を文字列自体に分解し、ベクトルに配置します。だから私の最初の質問は、スペースで区切られた各部分をベクトルにプッシュできるようにするにはどうすればよいですか? 次に、'(' を vector[1] の最初の文字 ([0]) の文字列と比較し、',' を vector[1] の [line.length()] の文字列と比較します。ベクトルにある文字列内の特定の文字を参照しますか?

4

1 に答える 1

1

strtok()を使用してみることができます。C++のstd::stringで直接strtokを使用することはできません。変更可能なゼロで終了するCスタイルの文字列が必要でありstd::string、その形式のaの内容にアクセスする標準的な方法はありません。

これについての詳細は、これを通過します

于 2013-01-28T07:22:14.283 に答える