Напечатать все слова из предложения, содержащие более 6 букв - C (СИ)

Узнай цену своей работы

Формулировка задачи:

С клавиатуры ввести предложения. Напечатать все слова из этого предложения, содержащие более 6 букв ( знаки препинания не учитывать ) .

Решение задачи: «Напечатать все слова из предложения, содержащие более 6 букв»

textual
Листинг программы
#include <iostream>
#include <string.h>
 
const char* next_word(const char* s, const char** e, int n){
    const char* i, *p;
    const char delim[] = " \t\n,.!?";
    for(p = NULL; *s; s = p){
        while(*s && (strchr(delim, *s) != NULL))
            ++s;
 
        if((p = strpbrk(s, delim)) == NULL){
            for(i = s; *i; ++i);
            p = i;
        }
 
        if((int)(p - s) >= n){
            *e = p;
            return s;
        }
    }
    return NULL;
}
 
int main(void){
    const char* p, *e;
    char s[] = "PASCAL, LISP, SNOBOL. FORTRAN";
 
    p = &s[0];
    while((p = next_word(p, &e, 6)) != NULL){
        while(p != e)
            putchar(*p++);
        putchar('\n');
    }
    return 0;
}

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

В этом коде реализована функция next_word, которая принимает три аргумента типа const char* и целое число. Первые два аргумента - это указатель на строку и указатель на следующую позицию в этой строке (указатель на первую непечатаемую симво в слове), третий аргумент - максимальная длина слова. Функция next_word ищет следующее слово в строке, длина которого не превышает n. Если такое слово найдено, то функция возвращает указатель на первую позицию этого слова, иначе возвращает NULL. В функции main создается строка s с несколькими словами. Затем, используя функцию next_word, мы ищем слова в этой строке, длина которых больше 6 символов. Когда мы находим такое слово, мы печатаем его на экране, затем переходим к следующему слову с помощью p = next_word(p, &e, 6). Когда мы доходим до конца строки, функция main возвращает 0, что означает успешное завершение работы программы.

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


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

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

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