C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++で文字列をトークン化しますか?


最初の方法は、文字列ストリームを使用して、スペースで区切られた単語を読み取ることです。これは少し制限されていますが、適切なチェックを提供すれば、タスクはかなりうまくいきます。

#include <vector>
#include <string>
#include <sstream>

using namespace std;

int main() {
   string str("Hello from the dark side");
   string tmp; // A string to store the word on each iteration.
   stringstream str_strm(str);

   vector<string> words; // Create vector to hold our words

   while (str_strm >> tmp) {
      // Provide proper checks here for tmp like if empty
      // Also strip down symbols like !, ., ?, etc.
      // Finally push it.
      words.push_back(tmp);
   }
}

もう1つの方法は、getline関数を使用して文字列を分割するカスタム区切り文字を提供することです-

#include <vector>
#include <string>
#include <sstream>

using namespace std;

int main() {
   std::stringstream str_strm("Hello from the dark side");
   std::string tmp;
   vector<string> words;
   char delim = ' '; // Ddefine the delimiter to split by

   while (std::getline(str_strm, tmp, delim)) {
      // Provide proper checks here for tmp like if empty
      // Also strip down symbols like !, ., ?, etc.
      // Finally push it.
      words.push_back(tmp);
   }
}

  1. C ++の()の文字列

    要約 この短いチュートリアルは、C++文字列クラスat()の概要です。 文字列から文字のシーケンスにアクセスするための機能。次のセクションでは、意欲的な読者が文字列クラスのプログラミング例を使用して、 at()の操作を完全に理解することができます。 関数。 文字列クラス プログラミング用語では、文字列は一般的であり、二重引用符で囲まれた表現であり、文字のコレクションが含まれています。文字列クラスもコンテナクラスであり、イテレータ演算子[]を使用してすべての文字を反復処理します。さらに、Stringクラスは、メモリとnull終了に関連するすべての操作を処理します。誰でも、文字列固有の位置から

  2. C++での文字列のトークン化

    このセクションでは、C++で文字列をトークン化する方法を説明します。 Cでは、文字配列にstrtok()関数を使用できます。ここに文字列クラスがあります。次に、その文字列から区切り文字を使用して文字列を切り取る方法を説明します。 C ++機能を使用するには、文字列を文字列ストリームに変換する必要があります。次に、getline()関数を使用して、タスクを実行できます。 getline()関数は、文字列ストリーム、出力を送信するための別の文字列、およびストリームのスキャンを停止するための区切り文字を受け取ります。 関数がどのように機能しているかを理解するために、次の例を見てみましょう。 サン