С++ для начинающих



         

Система текстового поиска - часть 2


Возьмем шесть строчек из неопубликованного детского рассказа Стена Липпмана (Stan Lippman)[10]:

Рис. 2.

Alice Emma has long flowing red hair. Her Daddy says when the wind blows through her hair, it looks almost alive, like a fiery bird in flight. A beautiful fiery bird, he tells her, magical but untamed. "Daddy, shush, there is no such thing," she tells him, at the same time wanting him to tell her more. Shyly, she asks, "I mean. Daddy, is there?"

После считывания текста его внутреннее представление выглядит так (процесс считывания включает ввод очередной строки, разбиение ее на слова, исключение знаков препинания, замену прописных букв строчными, минимальная поддержка работы с суффиксами и исключение таких слов,  как and, a, the):

alice ((0,0))

alive ((1,10))

almost ((1,9))

ask ((5,2))

beautiful ((2,7))

bird ((2,3),(2,9))

blow ((1,3))

daddy ((0,8),(3,3),(5,5))

emma ((0,1))

fiery ((2,2),(2,8))

flight ((2,5))

flowing ((0,4))

hair ((0,6),(1,6))

has ((0,2))

like ((2,0))

long ((0,3))

look ((1,8))

magical ((3,0))

mean ((5,4))

more ((4,12))

red ((0,5))

same ((4,5))

say ((0,9))

she ((4,0),(5,1))

shush ((3,4))

shyly ((5,0))

such ((3,8))

tell ((2,11),(4,1),(4,10))

there ((3,5),(5,7))

thing ((3,9))

through ((1,4))

time ((4,6))

untamed ((3,2))

wanting ((4,7))

wind ((1,2))

Ниже приводится пример работы программы, которая будет реализована в данном разделе (то, что задает пользователь, выделено курсивом):

please enter file name: alice_emma

enter a word against which to search the text.

to quit, enter a single character ==> alice

alice occurs 1 time:

    ( line 1 ) Alice Emma has long flowing red hair. Her Daddy says

enter a word against which to search the text.

to quit, enter a single character ==> daddy

daddy occurs 3 times:

    ( line 1 ) Alice Emma has long flow-ing red hair. Her Daddy says

    ( line 4 ) magical but untamed. "Daddy, shush, there is no such thing,"

    ( line 6 ) Shyly, she asks, "I mean, Daddy, is there?"

enter a word against which to search the text.

to quit, enter a single character ==> phoenix

Sorry. There are no entries for phoenix.

enter a word against which to search the text.

to quit, enter a single character ==> .

Ok, bye!

Для того чтобы реализация была достаточно простой, необходимо детально рассмотреть стандартные контейнерные типы и тип string, представленный в главе 3.




Содержание  Назад  Вперед