だから、私は、この行のすべての書籍(タイトル、作者、ジャンル)に関する情報を含む'[title]' '[author]' '[genre]'
のテキストファイルを持っています。この行を3つの異なる文字列に分割して、それぞれがタイトル/著者/ジャンルであるようにするにはどうすればよいですか?C++のテキストファイルの1行から複数の文字列を抽出する
答えて
int main() {
char str[]="[title] [author] [genre]";
char *pch = strtok (str," []");
while (pch != NULL)
{
cout<<pch<<"/";
pch = strtok (NULL, " []");
}
return 0;
}
出力: タイトル/著者/ジャンル/
これはCの関数であり、問題の文字列がマルチバイトエンコーディングを使用する場合、このアプローチでは問題が発生する可能性があります。 C++は楽器を持っています – Swift
@Swift絶対に。 しかし、ファイル –
1970内のデータを読み取るための適切な構造を選択することができます..... –
あなたは、文字列内のすべての一致を列挙するsregex_token_iteratorを使用し、その後、そのルールの正規表現を定義することができる場合は、任意のルールに従って文字列を分割することができます。この例では、すべてのマッチをベクターに保存します。
#include <vector>
#include <iostream>
#include <string>
#include <regex>
std::vector<std::string> get_params(const std::string& sentence)
{
std::regex reg("([^\']*)");
std::vector<std::string> names(
std::sregex_token_iterator(sentence.begin(), sentence.end(), reg),
std::sregex_token_iterator());
return names;
}
int main()
{
std::string str = "\'String1\' \'String2\' \'String3\'";
std::vector<std::string> v = get_params(str);
for (auto const& s : v)
std::cout << s << '\n';
}
- 1. Cの文字列から数字を抽出する
- 2. Swiftのテキストファイルから数字と文字を抽出する
- 3. Objective-Cの文字列から文字列を抽出する
- 4. Python:100行のテキストから1文字列を抽出する
- 5. (複数の)括弧から1つの文字列で値を抽出する
- 6. 1ワードの文字列から数値を抽出する
- 7. Cで文字列から複数の数値を抽出する方法
- 8. Java RegEx:文字列から複数の部分文字列を抽出する
- 9. 複数の同じ文字列を文字列から抽出する
- 10. Python - 複数のファイルから複数の文字列のテキストを抽出する
- 11. 英数字の文字列から数字を抽出する
- 12. 複数のHTTPレスポンスから複数のJSON文字列を抽出する
- 13. コンマのない文字列から複数の数字を抽出する
- 14. テキストファイルからの文字列の部分の抽出
- 15. テキストファイルからのPython文字列の抽出
- 16. 複数のテキストファイルから列を抽出します。
- 17. 複数のテキストファイル名から行を抽出し、それらの行をテキストファイルから取り出します - Linux
- 18. Pythonでテキストファイルから文字列を抽出する2.7.5
- 19. テキストファイルから部分文字列を抽出する方法は?
- 20. Rubyで1つの長い文字列から文字列を抽出する
- 21. 単語抽出複数行のテキストファイル
- 22. 文字列から数字と文字を抽出するR
- 23. JavaScriptの文字列から複数の整数を抽出する
- 24. 文字を含む行をテキストファイルから配列に抽出する方法は?
- 25. パイソン:複数のテキストファイルをループし、抽出対象の文字列、および
- 26. Sparkでテキストファイルから複数行レコードを抽出する方法
- 27. 文字列ベクトルから数字のベクトルを抽出する
- 28. テキストの文字列から数字を抽出する - Excel
- 29. Bashの文字列から文字列を抽出する
- 30. 文字列からの整数と文字の抽出
[解析(スプリット)Cの文字列++ストリング区切り文字(標準C++)を使用して(の可能性のある重複http://stackoverflow.com/questions/14265581/parse-split-a-string-in-c -using-string-delimiter-standard-c) –
標準C++ライブラリでサポートされているregexも使用できます。答えの下のstrtokは、Cの文字列だけで、ANSIではaのみで動作します。正規表現を試してみたいのであれば、それを学ぶためのオンラインエディタがあります:https://regex101.com/ – Swift
文字列は '、yes? '' 20、000 Leagues Under the Sea '' Jules Verne '' science fiction''のような行が正しいでしょうか? – user4581301