-1

これが私のコードです:

#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: 入力単語を一連の文字に変換して、文字列の開始点を取得するにはどうすればよいですか

4

1 に答える 1