This commit is contained in:
Oleksandr Hryshchenko 2021-11-29 18:09:50 +00:00
parent 435889c0bb
commit 41305a912a

View File

@ -1,7 +1,85 @@
#include <stdio.h>
#include "stdio.h"
#include "string.h"
int main(){
printf ("Hello world\n");
return 0;
struct Stack {
char symbol[100];
int size;
};
void pushStack(struct Stack* stack, char symbol){
stack->symbol[stack->size] = symbol;
stack->size++;
}
float popStack(struct Stack* stack){
char c = stack->symbol[stack->size -1];
stack->size -= 1;
return c;
}
int main(){
char string[50]; //0 - 49
char BB[50]; //0 - 49
struct Stack stack;
memset(&stack, 0, sizeof(struct Stack));
int x = 0;
scanf("%[^\n]", string);
strcpy(BB, string);
int i = 0;
while (1){
if( BB[i] == '[' || BB[i] == '(' || BB[i] == '{' || BB[i] == '<'){
pushStack(&stack, BB[i]);
BB[i] = ' ';
x++;
}
if( BB[i] == ']' || BB[i] == ')' || BB[i] == '}' || BB[i] == '>'){
if (x == 0){
printf ("Read: %s\nUnexpected closing bracket %c in %d\n",string, BB[i], i);
return 0;
}
char c = popStack(&stack);
if (c =='('){
c--;
}
if (c+2 != BB[i]){
printf("Read: %s\nCrossed bracket %c in %d, expected %c \n", string, BB[i], i, c+2);
return 0;
}
}
i++;
if (i == strlen(string)) break;
}
if (stack.size > 0){
printf("Read: %s\nMissing closing brackets: ", string);
while (stack.size > 0){
char c = popStack(&stack);
if (c =='('){
c--;
}
printf("%c", c+2);
}
printf("\n");
return 0;
}
printf("Read: %s\nAll brackets OK\n", string);
return 0;
}