2013-04-07 2 views
-1

Вот мой код:нужно начать строку из определенного места в C++

#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; 
} 

В НАСТОЯЩЕЕ ВРЕМЯ: Я могу искать определенное имя из текстового файла с тысячами имен (по одному на каждой строке) и сколько раз появляется имя. На каждой строке также появляется ключевое слово с именем и начинается с заглавной буквы и заканчивается периодом.

МОЯ ПРОБЛЕМА: Мой код почти готов, но проблема в том, что он ищет ключевое слово с начала файла, а затем выводит его (так как мой код не сделал, чтобы сделать что-нибудь еще еще)

MY GOAL: Я хочу, чтобы он искал ключевое слово из строки, где было найдено слово SEARCH. Например, если я ищу Джульетту и появляется с ключевым словом Girl, тогда я хочу, чтобы она печатала имя с этим ключевым словом, а не ключевое слово FIRST в файле.

МОИ МЫСЛИ: Должен быть способ начать поиск со слова, но я не знаю, как это сделать. Не могли бы вы помочь мне сделать дополнительный цикл, чтобы он начинал второй цикл, например, из слова Джульетта. Я не знаю, как преобразовать cin только в последовательность символов. Поскольку обычно при поиске строки в текстовом файле последовательность символов находится между символами.

'Juliet' 

, но мне нужно взять строку слово и как-то преобразовать его

Мой вопрос: Как я могу преобразовать входное слово в последовательности символов, чтобы получить отправную точку для строки

+1

Вы должны были добавить заголовок «МОЙ ВОПРОС». – antonijn

+0

сделано, извините за стеной текста –

+0

Не понимаю вопроса. – john

ответ

0

что-то вроде это? Это не «алгоритм», а просто простой цикл.

string word; 
cout << "Insert a name to search for: "; 
cin >> word; 
ifstream file ("Names.txt"); 
string a_word; 
while (file >> a_word && a_word != word) 
{ 
} 
if (file) 
{ 
    // found word now start second search. 
} 
else 
{ 
    // error, didn't find word 
}  

Извините, если это не так, но я изо всех сил пытаюсь понять, на что вы застряли. Вышеприведенный код очень прост, он проще, чем код, который вы написали сами.

+0

Mm да извините, в моем коде я также включил часть, где я считаю слово и другой алгоритм поиска дополнительного ключевого слова из заглавной буквы в период. Спасибо за ваш ответ, я проведу его через секунду, хотя я не знаком с a_string в C++ –

+0

Что такое 'a_string'? Не отображается в моем коде. – john

+0

Извините, вы только что создали новую строку под названием a_word :) –

Смежные вопросы