Удалить каждое четное слово в строке, при этом между словами может стоять не 1, а несколько пробелов - C (СИ)

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

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

Требуется удалить каждое четное слово в строке, при этом между словами может стоять не 1 а несколько пробелов

Решение задачи: «Удалить каждое четное слово в строке, при этом между словами может стоять не 1, а несколько пробелов»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
 
int main()
{
    static char str[256] = "apple      fruit     orange     juice    crunch    lemon\0";
 
    printf("%s\n",str);
 
    int cnt = 1;
    for (int i = 0; str[i] != '\0'; i++)
        if ((isspace(str[i]) && !isspace(str[i+1])) || 
            (!isspace(str[i]) && (str[i+1] == '\0')))
        {
            if ((cnt % 2) == 0)
            {
                int pos = i-1; 
                while (isspace(str[pos])) pos--;
                while (!isspace(str[pos])) pos--;
 
                int len = abs(pos-i);
                if (str[i+1] == '\0') len++;
 
                while (--len >= 0)
                {
                    for (int q = pos; str[q] != '\0'; q++)
                        str[q] = str[q+1];
                }
            }
 
            cnt++;
        }
 
     printf("%s\n",str);
 
    _getch();
}

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

  1. Включаются необходимые заголовочные файлы
  2. Объявляется и инициализируется строка str
  3. Выводится исходная строка на экран
  4. Инициализируется счётчик cnt, который будет отслеживать количество удалённых пар слов
  5. В цикле обрабатывается каждое слово в строке, кроме последнего (так как последняя пара слов обрабатывается в отдельном блоке)
  6. Проверяется, является ли текущее слово четным (или последним в строке)
  7. Если слово четное, то оно удаляется из строки, сдвигая все последующие слова на одну позицию влево
  8. После удаления четного слова, счётчик cnt увеличивается на единицу
  9. После обработки всех слов в строке, выводится измененная строка на экран
  10. Ждется нажатия клавиши для завершения программы

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


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

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

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