C++でのコンマ区切りのstd::stringの解析
このプログラムでは、C++でコンマ区切りの文字列を解析する方法を説明します。いくつかのテキストが存在し、それらがコンマで区切られている場所に文字列を配置します。このプログラムを実行すると、それらの文字列がベクトル型オブジェクトに分割されます。
それらを分割するには、getline()関数を使用しています。この関数の基本的な構文は次のとおりです。
getline (input_stream, string, delim)
この関数は、入力ストリームから文字列または行を読み取るために使用されます。
Input: Some strings "ABC,XYZ,Hello,World,25,C++" Output: Separated string ABC XYZ Hello World 25 C++
アルゴリズム
Step 1: Create stream from given string Step 2: While the stream is not completed Step 2.1: Take item before comma Step 2.2: Add item into a vector Step 3: Return the vector
サンプルコード
#include<iostream> #include<vector> #include<sstream> using namespace std; main() { string my_str = "ABC,XYZ,Hello,World,25,C++"; vector<string> result; stringstream s_stream(my_str); //create string stream from the string while(s_stream.good()) { string substr; getline(s_stream, substr, ','); //get first string delimited by comma result.push_back(substr); } for(int i = 0; i<result.size(); i++) { //print all splitted strings cout << result.at(i) << endl; } }
出力
ABC XYZ Hello World 25 C++
-
std ::stringをC++でconstchar*またはchar*に変換する方法は?
文字列クラスのc_str()メソッドを使用して、文字列の内容を含むconstchar*を取得できます。 例 #include<iostream> using namespace std; int main() { string x("hello"); const char* ccx = x.c_str(); cout << ccx; } 出力 これにより、出力が得られます- hello 文字*を取得するには、コピー機能を使用します。 例 #include<ios
-
C ++で文字列をトークン化しますか?
最初の方法は、文字列ストリームを使用して、スペースで区切られた単語を読み取ることです。これは少し制限されていますが、適切なチェックを提供すれば、タスクはかなりうまくいきます。 例 #include <vector> #include <string> #include <sstream> using namespace std; int main() { string str("Hello from the dark side"); string tmp; // A string