私はコマンドラインインターフェイスで作業しています。 ユーザーは、このようなC++で同じ文字列に対してstring.substr(x、y)を複数回使用できませんか?
などのコマンドを入力します。これは、-s
フラグで
add -s TITLE ARTIST
を「歌」を追加します。これは、あります-a
フラグで
add -a TITLE ARTIST
を「アルバム」を追加します異なるフラグとのような異なるコマンドは、も削除します。
私はコマンドとフラグを評価するためにこれを行っていますが、残りの文字列を取得するのには問題があります。ユーザーの入力はcharの配列として取り込まれ、文字列に変換されます。
if (inputString.substr(0, 3) == "add"){
if (inputString.substr(4, 5) == "-s"){
cout << "TEST: ADD SONGS" << endl;
//PROBLEM IS THIS LINE
cout << inputString.substr(6, MAX_LENGTH) << endl;
}
コマンド+アクションフラグを取得するたびに、残りの文字列を使用して実際に情報をデータベースに追加する新しい機能を実行したいと思います。
入力時に問題はありませんadd -s
プログラムは、最初の文字を評価して曲を追加したいと考えています。しかし、「add -s "Sorry" "Justin Bieber"
」のようなものを入力した場合、プログラムはadd -sフラグが実行されたことを認識しません。
なぜこれがどういうものなのか、どのように変更できるのか説明できますか? substr()
へ。
メモとして、これを自分で行うことは、傷つく世界全体になるでしょう。あなたは[Getopt](https://en.wikipedia.org/wiki/Getopt)のようなライブラリを使うことを考えましたか?それは実質的にC言語で普遍的です。 – tadman
あなたは[mcve]を使って多くの質問を改善することができます。デバッガで何を観察しましたか? – Tas
私は文字列分割アルゴリズムの使用を検討します:https://stackoverflow.com/questions/236129/most-elegant-way-to-split-a-string – Galik