Удалить группы символов, расположенные между фигурными скобками - C (СИ)

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

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

2.12. Пусть во входном потоке находится последовательность литер, заканчивающихся точкой (кодировка ASII). Вывести в выходной поток последовательность литер, измененную следующим образом: Удалить группы символов, расположенные между фигурными скобками { и }. Скобки тоже должны быть удалены. Предполагается, что скобки сбалансированы, и внутри каждой пары скобок других фигурных скобок нет.

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

textual
Листинг программы
#include <stdio.h>
#include <string.h>
 
int main(void) {
    char buf[BUFSIZ];
    
    while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ) {
        char * pOpen, * pClose;
        
        for ( pOpen = strchr(buf, '{'); pOpen; pOpen = strchr(pOpen + 1, '{') ) {
            if ( ! ( pClose = strchr(pOpen, '}') ) )
                break;
            memmove(++pOpen, pClose, strlen(pClose) + 1);
        }
        
        printf("Result: %s", buf);
    }
    
    return 0;
}

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


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

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

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