Поиск слов по критериям - C (СИ)
Формулировка задачи:
Не могу понять как осуществлять данный поиск предположил вот такой вот код, но что то не катит...
Помогите плз.
#include <stdio.h> #include <stdlib.h> #include <windows.h> /** 3.2. Дана строка, состоящая из слов, разделенных пробелами (одним или несколькими). Найти количество слов, которые начинаются и заканчиваются одной и той же буквой. **/ int len(char *str); int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); char *str=(char*)malloc(100*sizeof(char)); printf("Напишите строку, состоящую из слов разделенных пробелами: "); gets(str); printf("Колличесвто слов,\nначинающихся с одной и той же буквы = %d",len(str)); return 0; } int len (char *str) { int k=0; char x; while (*str) { x=*str; while (*str!=' ') str++; if (x==*str) k++; str++; } return k; }
Решение задачи: «Поиск слов по критериям»
textual
Листинг программы
#include <stdio.h> #include <string.h> int main() { char str[80], *w, word[30]; int len, n = 0; printf("Input string:\n"); gets(str); w = strtok(str, " "); while(w != NULL){ strcpy(word, w); len = strlen(word); if(word[0] == word[len - 1]){ n++; puts(word); } w = strtok(NULL, " "); } printf("%d", n); return 0; }
Объяснение кода листинга программы
В этом коде осуществляется поиск слов в строке по следующим критериям:
- Слово должно быть отделено от других слов пробелами.
- Уникальные слова, то есть слова, которые встречаются в строке только один раз, выводятся на экран.
- Выводится количество найденных уникальных слов. Список действий:
- Ввод строки с помощью функции
gets()
. - Выделение первого слова в строке с помощью функции
strtok()
. - Пока не будет найден нулевой указатель (что означает окончание строки), продолжается выполнение следующих действий:
- Копирование текущего слова в буфер
word
. - Вычисление длины слова с помощью функции
strlen()
. - Проверка, является ли первое и последнее символы слова одинаковыми (если они одинаковы, это означает, что это уникальное слово).
- Если слово уникальное, его выводят на экран с помощью функции
puts()
, и увеличивают счетчик уникальных слов на 1.
- Копирование текущего слова в буфер
- После окончания цикла, выводится количество найденных уникальных слов с помощью функции
printf()
и возвращается 0, что означает успешное завершение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д