これが私のコードです:
#include <iostream>
#include <fstream>
#include <cstring>
#include <string>
#include <iterator>
#include <algorithm>
#include <string>
using namespace std;
int main()
{
string word;
cout << "Insert a name to search for: ";
cin >> word;
ifstream file ("Names.txt");
string line;
getline(file, line, '.');
int i;
for (i = 0; i < line.length(); ++i) {
if ('A' <= line[i] && line[i] <= 'Z') break;
}
string keyword = line.substr(i);
int cnt = count( istream_iterator<string>(file), istream_iterator<string>(), word);
cout << word << " appears " << cnt << " times. It appears most with " << keyword << ". keyword" << endl;
return 0;
}
現時点で: 何千もの名前 (各行に 1 つ) を含むテキスト ファイルから特定の名前を検索し、その名前が何回表示されるかを確認できます。各行には名前付きのキーワードもあり、大文字で始まりピリオドで終わります。
私の問題: 私のコードはほとんど準備ができていますが、問題は、ファイルの先頭からキーワードを検索してから出力することです (私のコードはまだ他のことをするように作成されていないため)
MY GOAL: SEARCH ワードが見つかった行からキーワードを検索したい。たとえば、Juliet を検索して、Girl というキーワードで表示された場合、ファイル内の FIRST キーワードではなく、そのキーワードで名前を出力したいと考えています。
私の考え: 単語から検索を開始する方法があるはずですが、方法がわかりません。追加のループを作成して、たとえば単語ジュリエットから 2 番目のループを開始するのを手伝ってもらえませんか。cin を単なる一連の文字に変換する方法がわかりません。通常、テキスト ファイル内の文字列を検索する場合、文字列は ' 記号の間にあります。
'Juliet'
しかし、文字列という単語を取得して、何らかの方法で変換する必要があります
MY QUESTION: 入力単語を一連の文字に変換して、文字列の開始点を取得するにはどうすればよいですか