Дана строка символов до точки. Удалить из нее все слова, начинающиеся с буквы «а» - C (СИ)

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

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

Дана строка символов до точки. Удалить из нее все слова, начинающиеся с буквы «а».

Решение задачи: «Дана строка символов до точки. Удалить из нее все слова, начинающиеся с буквы «а»»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
 
int main(void)
{
    char str[] = { "test1 asd test2 asdasd test3." };
    size_t i;
    char *pBegin, *pEnd;
    for (i = 0; i < strlen(str); i++)
    {
        if ((str[i] == 'a' && i == 0) || (str[i] == 'a' && i > 0 && (ispunct(str[i - 1]) || isspace(str[i - 1]))))
        {
            pBegin = str + i;
            pEnd = pBegin;
            while (isalpha(*pEnd))
                ++pEnd;
            strcpy(pBegin, pEnd);
        }
    }
 
    puts(str);
 
    return 0;
}

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

  1. Подключение необходимых библиотек для работы со строками и символами.
  2. Объявление и инициализация строки символов, которую необходимо обработать.
  3. Объявление переменных i, pBegin и pEnd, которые будут использоваться в цикле.
  4. Проход по каждому символу строки с помощью цикла for.
  5. Проверка условия для удаления слова, начинающегося с буквы а.
  6. Если условие выполняется, то присваиваем указателю pBegin значение str + i, чтобы он указывал на первый символ слова, которое нужно удалить.
  7. Затем присваиваем указателю pEnd значение pBegin, чтобы он также указывал на первый символ слова, которое нужно удалить.
  8. Далее, с помощью цикла while, проверяем каждый последующий символ, начиная с pEnd, на предмет того, является ли он буквой.
  9. Если текущий символ является буквой, то увеличиваем значение pEnd на 1, чтобы он указывал на следующий символ.
  10. После прохода по всем символам слова, которое нужно удалить, вызываем функцию strcpy с аргументами pBegin и pEnd, чтобы скопировать все символы после слова, начинающегося с буквы а, в начало строки.
  11. Вывод обработанной строки с помощью функции puts.
  12. Возврат 0, чтобы указать на успешное выполнение программы.

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


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

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

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