Удалить группы символов, расположенные между фигурными скобками - 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;
}