Определить, есть ли в строке слова, которые совпадают с последним - 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
раз. - Если последнее слово не встречается, то выводится сообщение о том, что оно является единственным в строке.
- Цикл продолжается до тех пор, пока пользователь не введет пустую строку.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д