Удалить символы, что находяться в скобках - C (СИ)
Формулировка задачи:
Задаеться строка...ну вы поняли
Решение задачи: «Удалить символы, что находяться в скобках»
textual
Листинг программы
#include <stdio.h> #include <string.h> int main() { char text[256]; int brackets = 0; // Счётчик открывающихся скобок unsigned begin = 0; // Позиция первой открывающийся скобки unsigned i = 0; fgets(text, sizeof(text), stdin); // Перебираем все символы строки while (i < strlen(text)) { switch (text[i]) { case '(': // В случае если встретили открывающуюся скобку // и она является первой, то мы запоминаем её позицию // Кроме этого постоянно инкрементируем счётчик // открывающихся скобок if (++brackets == 1) { begin = i; } break; case ')': // В случае если встречаем закрывающую скобку // и она относится именно к первой открывающийся, то // мы перемещаем всё что за закрывающейся скобкой на // позицию первой открывающейся if ((brackets > 0) && (--brackets == 0)) { memmove(&text[begin], &text[i + 1], strlen(&text[i])); i = begin - 1; } break; } ++i; } printf("%s", text); return 0; }
Объяснение кода листинга программы
- В начале кода объявляются три переменные: text, brackets и begin.
- Переменная text является массивом символов, в который будет считываться строка.
- Переменная brackets используется как счётчик открывающих скобок.
- Переменная begin хранит позицию первой открывающей скобки.
- Затем считывается строка с помощью функции fgets.
- Далее в цикле while происходит перебор всех символов строки.
- В случае если встречается символ '(', то выполняется проверка: если это первая открывающая скобка, то запоминается её позиция и увеличивается счётчик.
- В случае если встречается символ ')', то выполняется проверка: если это закрывающая скобка, относящаяся к первой открывающей скобке, то все символы, находящиеся между ней и первой открывающей скобкой, перемещаются в начало строки, после чего счётчик закрывающих скобок уменьшается на единицу.
- В конце выводится на экран полученная строка.
- В конце кода возвращается 0, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д