Поиск слов по критериям - 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;
}

Объяснение кода листинга программы

В этом коде осуществляется поиск слов в строке по следующим критериям:

  1. Слово должно быть отделено от других слов пробелами.
  2. Уникальные слова, то есть слова, которые встречаются в строке только один раз, выводятся на экран.
  3. Выводится количество найденных уникальных слов. Список действий:
  4. Ввод строки с помощью функции gets().
  5. Выделение первого слова в строке с помощью функции strtok().
  6. Пока не будет найден нулевой указатель (что означает окончание строки), продолжается выполнение следующих действий:
    • Копирование текущего слова в буфер word.
    • Вычисление длины слова с помощью функции strlen().
    • Проверка, является ли первое и последнее символы слова одинаковыми (если они одинаковы, это означает, что это уникальное слово).
    • Если слово уникальное, его выводят на экран с помощью функции puts(), и увеличивают счетчик уникальных слов на 1.
  7. После окончания цикла, выводится количество найденных уникальных слов с помощью функции printf() и возвращается 0, что означает успешное завершение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.455 из 5
Похожие ответы