Курсовая работа: Построитель вопросительных предложений

4. увеличиваем счетчик слов на 1 и добавляем полученное слово в массив;

5. если исходная строка не закончилась, переходим к шагу 2, иначе заканчиваем работу.

Данному алгоритму соответствует нижеприведенная программа:

char res[20]; // Буфер для хранения слова

char *tmp; // Ссылка на исходную строку

int words(){

char *r;

memset(res,0,20); // Обнуление буфера слова

r=res;

if(*tmp==0)return 0; // Если исходная строка пуста или закончилась, выход из подпрограммы

while(*tmp==' '||*tmp=='\t')tmp++; // Пропуск пробелов

if(islower(*tmp)||isupper(*tmp)) // Если рассматриваемый символ буква…

{

while(islower(*tmp)||isupper(*tmp))*r++=*tmp++; // Добавляем к буферу слова очередной символ, если он буква

tmp++;

}

return 1;

}

Функция words() возвращает в качестве результата два значения: 1 и 0. 1 возвращается в том случае, когда найдено слово. Если же просмотр строки закончился или строка изначально была пуста, возвращается 0. Поэтому данная функция должна вызываться в цикле вида :

while(words()!=0){

arr[i]=(word *)calloc(1,sizeof(word)); // Добавление новой записи в массив

memset(arr[i]->wrd,0,20);

strcpy(arr[i]->wrd,res); // Запись результата работы функции в массив

i++; // Увеличение количества найденых слов

}

Так как мы рассматриваем только простые предложения и предполагаем, что числительные и порядковые пишутся словами, то функция words() не учитывает знаки препинания и цифры.

После выделения слов в предложении идет этап анализа полученных результатов. То есть, для каждого слова создается список его параметров (часть речи, падеж, род, число и т.д.), которые хранятся в структуре вида:

struct word{

char wrd[20]; //слово

К-во Просмотров: 379
Бесплатно скачать Курсовая работа: Построитель вопросительных предложений