ГЛАВА 7. Обработка последовательности символов

При обработке последовательности символов наиболее часто используются следующие три алгоритма [26]:

§ алгоритм выделения слова из строки;

§ выбор слов, подходящих под шаблон;

§ перевод прописных символов в строчные.

Алгоритм выделения слова из строки

Алгоритм выделения слова из строки заключается в нахождении индекса, соответствующего началу слова (первый не пробельный символ), и индекса первого после окончания слова пробела или признака конца строки (символ ‘\0’). Существование слова гарантируется отличной от нуля разностью между вторым и первым символом.

Листинг 7.1. Определить число слов в тексте, записанном в файле.

//L7_1.cpp

#include <fstream>

#include <iostream>

using namespace std;

int sum_word(char*st);//Прототип функции

int main()

{

int sum=0;

char s[81];

fstream f("input.txt"),f1;

f.getline(s,80); // Читаем строку из файла

while(!f.eof()) // Проверка достижения конца файла

{

sum+=sum_word(s); // Добавляем в сумму число

// слов в текущей строке.

f.getline(s,80); // Чистим следующую строку

}

f.close();

f1.open("input.txt",ios::app); // Открываем файл для пополнения

f1<<"\n\nЧисло слов в тексте = "<<sum<<'\n';

f1.close();

return 0;

}

// Функция, определяющая число слов в строке:

int sum_word(char *st)

{

int s=0,b,e=0;

while(st[e]!= '\0')

{

// Пропускаем ведущие пробелы:

while(st[e]!= '\0' && st[e] == ' ')

e++;

b=e;

// Пропускаем символы слова:

while(st[e]!= '\0' && st[e]!=' ')

e++;

if(e-b>0) // Слово выделено

s++;

}

return s;

}

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

В файле с именем “input.txt” содержится информация о количестве чисел и сами числа.

Необходимо сформировать массив, не содержащий повторяющихся значений.

Этот алгоритм был рассмотрен в главе 1. При работе с файлом он выглядит следующим образом.

Число слов в тексте = 35

Рис. 7.1. Результат работы программы листинга 7.1


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: