- 文字列を区切り文字に基づいて分割する方法:
文字列を区切り文字(例えば、スペースやカンマ)で分割するには、C++の標準ライブラリである
std::istringstream
を使用します。以下のコード例を参考にしてください。
#include <iostream>
#include <sstream>
#include <vector>
#include <string>
int main() {
std::string input = "Hello World! This is a sample string.";
std::istringstream iss(input);
std::vector<std::string> tokens;
std::string token;
while (std::getline(iss, token, ' ')) {
tokens.push_back(token);
}
for (const auto& t : tokens) {
std::cout << t << std::endl;
}
return 0;
}
このコードでは、std::istringstream
を使用して文字列をスペースで分割し、std::vector
に格納しています。
- 正規表現を使用してパターンに基づいて文字列を解析する方法:
正規表現を使用すると、特定のパターンに一致する文字列を抽出できます。C++では
std::regex
を使用して正規表現を扱います。以下のコード例を参考にしてください。
#include <iostream>
#include <regex>
#include <string>
int main() {
std::string input = "Date: 2024-02-28";
std::regex pattern(R"(\d{4}-\d{2}-\d{2})");
std::smatch matches;
if (std::regex_search(input, matches, pattern)) {
std::cout << "Match found: " << matches[0] << std::endl;
}
return 0;
}
このコードでは、正規表現パターン\d{4}-\d{2}-\d{2}
に一致する文字列を抽出しています。