Определить, есть ли в строке слова, которые совпадают с последним - C (СИ)
Формулировка задачи:
В заданной строке слова разделены пробелом. Определить, есть ли в ней слова, которые совпадают с последним
P.S. Нужно определить если ли в строке слова, которые совпадают с последним и просто вывести текст "есть совпадения" или "совпадений нету" - что то такое.
Заранее БОЛЬШОЕ спасибо!
апп темку...
помогите плиз ...
Решение задачи: «Определить, есть ли в строке слова, которые совпадают с последним»
textual
Листинг программы
- #include <stdio.h>
- #include <string.h>
- char * last_word_meetings(char * str, const char * delim, int * counter) {
- if ( str = strtok(str, delim) ) {
- char * last = last_word_meetings(NULL, delim, counter);
- if ( ! last )
- return str;
- *counter += ( strcmp(str, last) == 0 );
- return last;
- }
- else
- return NULL;
- }
- #define DELIM " \t\n"
- int main(void) {
- char buf[BUFSIZ];
- while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ) {
- int meetings = 0;
- char * last = last_word_meetings(buf, DELIM, &meetings);
- if ( meetings )
- printf("Last word (%s) meets %d times before.\n", last, meetings);
- else
- printf("%s - only last word in the string.\n", last);
- }
- return 0;
- }
Объяснение кода листинга программы
- В функции
last_word_meetings
используется функцияstrtok
для разделения строки на слова. - Если первое слово не равно последнему, то функция вызывается рекурсивно для оставшейся части строки.
- Если последнее слово не найдено, то возвращается первое слово.
- Если последнее слово найдено, то увеличивается счетчик
*counter
, и функция вызывается рекурсивно для оставшейся части строки. - В конце функции возвращается последнее найденное слово.
- В функции
main
считывается строка с помощьюfgets
. - С помощью функции
last_word_meetings
определяется, встречается ли последнее слово в строке, и если да, то сколько раз. - Если последнее слово встречается, то выводится сообщение о том, что оно встречается
meetings
раз. - Если последнее слово не встречается, то выводится сообщение о том, что оно является единственным в строке.
- Цикл продолжается до тех пор, пока пользователь не введет пустую строку.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д