Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

III. Программа и тестовые примеры



Разобьем написание программы на последовательность шагов.

Шаг 1. Ввести «скелет» программы (директивы #include, функцию main(), описа­ние переменных, открытие файла). Добавить контрольный вывод введенного сло­ва. Запустив программу, проверить ввод слова и успешность открытия файла. Для проверки вывода сообщения об ошибке следует выполнить программу еще раз, задав имя несуществующего файла.

#include <fstream.h>

int main()

{

const int len = 81;

char word[len], line[len];

setlocale(LC_ALL, "Russian");

cout << "Введите слово для поиска:";

cin >> word;

ifstream fin("text.txt",ios::in|ios::nocreate);

if (!fin)

{

cout << "Ошибка открытия файла." << endl;

}

return 0;

}

Шаг 2. Добавить в программу цикл чтения из файла, внутри цикла поставить кон­трольный вывод считанной строки (добавляемые операторы помечены признаком комментария):

#include <fstream.h>

int main()

{

const int len = 81;

char word[len], line[len];

setlocale(LC_ALL, "Russian");

cout << "Введите слово для поиска:";

cin >> word;

ifstream fin("text.txt",ios::in|ios::nocreate);

if (!fin)

{

cout << "Ошибка открытия файла." <<endl;

return 1;

}

while (fin.getline(line,len))

{

cout << line << endl;

}

return 0;

}

Шаг 3. Добавить в программу цикл поиска последовательности символов, состав­ляющих слово, с контрольным выводом:

#include <fstream.h>

#include <string.h>

int main()

{

const int len = 81;

char word[len], line[len];

setlocale(LC_ALL, "Russian");

cout << "Введите слово для поиска:";

cin >> word;

int l word = strlen(word);

ifstream fin("text.txt",ios::in|ios::nocreate);

if (!fin)

{

cout << "Ошибка открытия файла." <<endl;

return 1;

}

int count = 0;

while (fin.getline(line,len))

{

char *p = line;

while (p = strstr(p,word))

{

cout << "Совпадение:" << p << endl;

p += l word; count++;

}

}

cout << count << endl;

return 0;

}

Для многократного поиска вхождения подстроки в заголовке цикла используется функция strstr. Очередной поиск должен выполняться с позиции, следующей за найденной на предыдущем проходе подстрокой. Для хранения этой позиции опре­деляется вспомогательный указатель р, который на каждой итерации цикла нара­щивается на длину подстроки. Также вводится счетчик количества совпадений. На данном этапе он считает не количество слов, а количество вхождений последо­вательности символов, составляющих слово.

Шаг 4. Добавить в программу анализ принадлежности символов, находящихся перед словом и после него, множеству знаков пунктуации и разделителей:





Дата публикования: 2015-10-09; Прочитано: 285 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...