Для каждого слова первого предложения определить, входит ли оно во второе предложение - C (СИ) (148650)
Формулировка задачи:
1) Даны два предложения. Для каждого слова первого предложения определить, входит ли оно во второе предложение. Повторяющиеся слова первого предложения не рассматривать.
Решение задачи: «Для каждого слова первого предложения определить, входит ли оно во второе предложение»
textual
Листинг программы
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
int main(void)
{
char istr [100]; /* Объявление исходной строки */
char fword [100]; /* Объявление строки поиска */
char *sword; /* Объявление указателя на строку */
char divstr [] = " .,;:?!()[]{}<>"\'-+*/"; /* Строка разделителей */
int nw, nfw = 0; /* Счетчики количества слов и найденных слов*/
printf ("\nEnter string: "); /* Ввод исходной */
gets(istr); /* строки */
for (;;)
{
printf ("\nEnter search word: "); /* Ввод слова */
gets(fword); /* поиск cлова */
if (strpbrk(fword,divstr) == NULL) /* Проверка введенного слова */
break; /* на символы-разделители */
else
printf("Wrong word."); /* Повторный ввод строки */
}
sword=strtok (istr,divstr); /* Поиск первого слова */
for (nw = 0 ; sword != NULL ; nw++) /* Просмотр слов строки */
{
if (strcmp (fword,sword) == 0) /* Определение количества */
nfw++; /* найденных слов в строке */
sword=strtok (NULL,divstr); /* Поиск следующего слова */
}
/* Печать результата */
printf ("\nTotal number of words in string: %d.\
Number of <%s> word: %d.", nw,fword,nfw);
getchar(); /* Ввод символа */
getchar(); /* Ввод символа */
return 0; /* Выход из программы */
}
Объяснение кода листинга программы
- Ввод исходной строки и слова для поиска
- Проверка введенного слова на символы-разделители, если слово содержит символы-разделители, то выводится сообщение
Wrong wordи происходит повторный ввод строки - Поиск первого слова в исходной строке с помощью функции strtok
- Просмотр слов строки с помощью цикла for и функции strcmp для определения количества слов, соответствующих искомому слову
- Печать результата, включая общее количество слов в строке и количество слов, соответствующих искомому слову
- Ввод символа для завершения работы программы