Как при выводе на экран игнорировать слова определённой длины? - C (СИ)

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

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

На вход в программе даётся текст (например "Hello, world! Hi"). Как сделать так, чтобы программа выводила только те слова, в которых кол-во символов больше числа, в значении некой переменной? Например, в данном случае ("Hello, world! Hi"), при какой-нибудь N = 2, программа бы выводила только "Hello, world!". P.S: Нельзя использовать string.h

Решение задачи: «Как при выводе на экран игнорировать слова определённой длины?»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
void prf(char *s, int n)
{
    int i;
    for(i = 0; i < n ;i++, s++) {
        putchar(*s);
    }
}
int main()
{
    char *s = (char *) malloc(20);
    gets(s);
    int n = 2;
    scanf("%d", &n);
    int z = 0;
    int m = 0;
    while(1) {
        if(ispunct(*s) || isspace(*s) || *s == '\0') {
            z = (m == 0) ? z : z - 1;
            if(z > n) {prf(s-z, z);putchar(*s);}
            z = 0;
            m++;
            if(*s == '\0') break;
        }
        s++;
        z++;
    }
}

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

В этом коде реализована функция, которая выводит на экран строку, игнорируя слова определенной длины.

  1. Сначала объявляются необходимые переменные:
    • s - указатель на строку, которую необходимо вывести;
    • n - длина слова, которое необходимо игнорировать;
    • z - количество слов, которые уже были пропущены;
    • m - количество слов, которые уже были выведены.
  2. Затем происходит чтение строки и ее длины с помощью функций gets и scanf.
  3. Далее в цикле происходит проверка каждого символа строки:
    • Если символ является знаком препинания, пробелом или нулевым символом, то происходит обновление счетчиков z и m, а также выводится на экран последовательность символов, которая была пропущена.
    • Если символ не является знаком препинания, пробелом или нулевым символом, то он выводится на экран.
  4. Цикл продолжается до тех пор, пока не будет достигнут конец строки.

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


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

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

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