Исключить из строки группы символов, расположенные между скобками [, ] - C (СИ)
Формулировка задачи:
Можете помочь решить? С объяснением пожалуйста. На чистом СИ | Дана строка символов. Исключить из этой строки группы символов, расположенные между скобками [, ]. Сами скобки тоже должны быть исключены. Предполагается, что внутри каждой пары скобок нет других скобок.
Решение задачи: «Исключить из строки группы символов, расположенные между скобками [, ]»
textual
Листинг программы
#include <stdio.h>
char* remove_s(char* s, char fch, char lch){
char* p, *i, *t = s;
while(*s && (*s != fch))
++s;
for(p = s; *s; *s = *p){
if(*p == fch){
i = p + 1;
while(*i && (*i != lch)){
if(*i == fch){
i = NULL;
break;
}
++i;
}
if((i != NULL) && (*i == lch)){
p = i + 1;
continue;
}
}
++s;
++p;
}
return t;
}
int main(void){
char s[] = "[XXX]+[YYYYYYY] = [END]";
puts(s);
puts( remove_s(s, '[', ']') );
return 0;
}