C std::string を使用した文字列トークンの分離
この質問は、C std::string を複数のトークンに分割するという課題に対処します。特に区切り文字「;」を使用します。提案されているソリューションの中には Boost などの外部ライブラリを使用するものもありますが、このプロジェクトのガイドラインではその使用を禁止しています。したがって、C 標準ライブラリを使用した、より直接的なアプローチを検討します。
効果的な方法の 1 つは、区切り文字の指定に多用途性を提供する std::getline() 関数を利用することです。この場合、次のようにトークン化プロセスを実装できます:
#include <sstream> #include <iostream> #include <vector> using namespace std; int main() { vector<string> strings; // Vector to store split strings istringstream f("denmark;sweden;india;us"); // Input stringstream string s; // Variable to store individual strings while (getline(f, s, ';')) { cout << s << endl; // Display split string strings.push_back(s); // Store string in vector } }
この実装では、入力文字列「denmark;sweden;india;us」から stringstream を作成します。 std::getline() 関数は、stringstream を反復処理し、「;」で区切られたトークンを取得するために使用されます。デリミタ。取得された各トークンは出力され、さらに処理するために文字列ベクトルに追加されます。
このアプローチを採用することで、指定されたガイドラインに準拠し、外部ライブラリに依存せずに入力文字列の望ましいトークン化を実現します。
以上がstd::getline() を使用して C で文字列をトークンに分割する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。