Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
GODofART
2 / 2 / 4
Регистрация: 19.11.2011
Сообщений: 52
#1

Поиск слова в строке - C++

05.04.2015, 01:22. Просмотров 1265. Ответов 2
Метки нет (Все метки)

Исходя из сабжа - тысячу раз разжеванная тема, но у меня немного другой вопрос.
C++
1
2
3
4
5
6
string surname;
 
while (getline(f, S)){
    if (S.find(surname) != string::npos)
        cout << S << endl;
}
f - файл, S - текущая строка.

Этот алгоритм отлично ищет нужное мне слово в строке, но мне нужно вывести еще дополнительные строки, не только которую нашло.
Если мы находимся в текущий момент на найденной строке, то нужно вывести строки:
-1, 0(мы на ней как раз находимся), затем от 1 до 10 включительно

Есть идеи по реализации?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2015, 01:22
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Поиск слова в строке (C++):

Поиск слова в строке
if(name.Pos(&quot;Ïðîãðàììèðîâàíèå&quot;) == 1) price *= 2; если слово...

Поиск слова в строке
Реализовать и использовать функцию поиска слова в строке: int searchWord(...

Поиск слова в строке
Всем привет! задача нужно найти слово в строке например: char str1=&quot;hello...

Поиск слова в строке
Дано: массив типа char, заполняется с клавиатуры. Дана переменная

Поиск слова в строке
Дано: массив a типа char, вводится с клавиатуры. Дана переменная s, в которую...

Поиск слова в строке
вот есть программка, которая должна искать слово word_r (отдельный файл) в...

2
lss
926 / 855 / 355
Регистрация: 10.10.2012
Сообщений: 2,705
05.04.2015, 04:21 #2
Цитата Сообщение от GODofART Посмотреть сообщение
то нужно вывести строки:
-1, 0(мы на ней как раз находимся)
Следующую за строкой, с найденным словом, или которая перед ней?

Добавлено через 5 минут
Цитата Сообщение от GODofART Посмотреть сообщение
затем от 1 до 10 включительно
C++
1
2
3
f.clear();
f.seekg(0, ios::beg);
// читать и выводить десять строк
0
zss
Модератор
Эксперт С++
6953 / 6515 / 4136
Регистрация: 18.12.2011
Сообщений: 17,199
Завершенные тесты: 1
05.04.2015, 13:50 #3
Можно не перемещаться по файлу, а запоминать предыдущую строку
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
string Sold;
getline(f, Sold);
while (getline(f, S))
{
    if (S.find(surname) != string::npos)
    {
        cout << Sold << endl;
        cout << S << endl;
        for(int i=0;i<10;i++)
        {
            getline(f, S);
            cout << S << endl;
        }
   }
   Sold=S;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.04.2015, 13:50
Привет! Вот еще темы с решениями:

поиск слова в строке
Добрый день! Помогите найти ошибку. Задание длина файла 1000 символов (длина...

Поиск слова в строке
Есть переменная search стринг типа, в которую введено с клавы слово. Нужно...

Поиск и замена слова в строке
Добрый вечер. Помогите написать программу которая ищет в введенной строке...

Структуры. Поиск слова в строке
Здравствуйте, по заданию требуется вывести строку в которой присутствует...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru