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

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

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

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

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

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <ctype.h>
  4. void prf(char *s, int n)
  5. {
  6.     int i;
  7.     for(i = 0; i < n ;i++, s++) {
  8.         putchar(*s);
  9.     }
  10. }
  11. int main()
  12. {
  13.     char *s = (char *) malloc(20);
  14.     gets(s);
  15.     int n = 2;
  16.     scanf("%d", &n);
  17.     int z = 0;
  18.     int m = 0;
  19.     while(1) {
  20.         if(ispunct(*s) || isspace(*s) || *s == '\0') {
  21.             z = (m == 0) ? z : z - 1;
  22.             if(z > n) {prf(s-z, z);putchar(*s);}
  23.             z = 0;
  24.             m++;
  25.             if(*s == '\0') break;
  26.         }
  27.         s++;
  28.         z++;
  29.     }
  30. }

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

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

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

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


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

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

12   голосов , оценка 3.75 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы