Сформировать новое предложение из данного: удалить слова, состоящие менее, чем из 3-х букв и заканчивающиеся на "а" - C (СИ)

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

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

Дано предложение, нужно сформировать новое, в котором буду удалены слова, состоящие менее, чем из 3-х букв и заканчивающиеся на "а". Я не знаю как мне удалить все слово, заканчивающееся на "а" и меньше трех.
#include <string.h>
#include <stdio.h>
int main()
{
char s1[20];
char a[20];
char b[10];
int k=0;
int k1=0;
int i;
printf("Vvedi stroky=");
gets(s1);
int c=strlen(s1);
for (i=0; i<c; i++)
    {
if (s1[i]!='a'&&s1[i]>3)
 
    a[k++]=s1[i];
}
printf("\nNovay stroka\n");
for (i=0; i<k; i++) {
printf("%c", a[i]);
}
return(0);
}

Решение задачи: «Сформировать новое предложение из данного: удалить слова, состоящие менее, чем из 3-х букв и заканчивающиеся на "а"»

textual
Листинг программы
#include "stdio.h"
int main() {
    char s[64];
    gets(s);
    for(char i = 0, j = 0, k = 0, l = 0; s[i-1] || !i; i++, j++, l++) {
        if(s[i] == ' ' || s[i] == '\0') {
            if(s[i-1] == 'a' || l < 4) j = k;
            i += !k, k = j, l = 0;
        }
        s[j] = s[i];
    }
    puts(s);
    return 0;
}

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

В этом коде с помощью цикла for происходит проход по всем символам строки, которая была введена с клавиатуры и сохранена в массиве s. При этом проверяется, является ли текущий символ пробелом или концом строки. Если это так, то проверяется, является ли предыдущий символ буквой а и имеет ли текущий слова, состоящие менее чем из 4-х букв. Если условие выполняется, то индексы j и k меняются местами, при этом индекс k увеличивается на единицу, а затем индекс j сбрасывается до значения k, а счетчик l сбрасывается до нуля. Это делается для того, чтобы пропустить все слова, которые заканчиваются на а и состоят менее чем из 4-х букв. В противном случае, текущий символ сохраняется в позиции j. В конце цикла, когда все символы были проверены, выводится получившаяся строка.

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


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

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

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