#include <stdio.h>
#include <string.h>
#include <ctype.h>
int top=-1;
char stack_string[100];
void push(char word);
char pop(void);
int main(void){
char input;
char str[100];
int i, len;
printf("press [a] for palindrome check, [b] for string reversal:");
if (input == 'b'){
for(i = 0; i < len; i++)
push(str[i]);
for(i = 0; i < len; i++)
str[i]=pop();
printf("Reversed String is: %s\n", str
); }
else if(input == 'a'){
int count = 0;
for (i = 0; i < len; i++){
if(!isspace((unsigned char)str
[i
])) push(str[i]);
}
for (i = 0; i < len; i++){
count++;
}
if (count == len)
printf("%s is a palindrome\n", str
); else
printf("%s is not a palindrome\n", str
); }
return 0;
}
void push(char word){
top=top+1;
stack_string[top]=word;
}
char pop(){
char word = stack_string[top];
top=top-1;
return word;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgPGN0eXBlLmg+CgppbnQgdG9wPS0xOwoKY2hhciBzdGFja19zdHJpbmdbMTAwXTsKdm9pZCBwdXNoKGNoYXIgd29yZCk7CmNoYXIgcG9wKHZvaWQpOwoKaW50IG1haW4odm9pZCl7CgljaGFyIGlucHV0OwoJY2hhciBzdHJbMTAwXTsKCWludCBpLCBsZW47CglwcmludGYoInByZXNzIFthXSBmb3IgcGFsaW5kcm9tZSBjaGVjaywgW2JdIGZvciBzdHJpbmcgcmV2ZXJzYWw6Iik7CglzY2FuZigiJWMiLCAmaW5wdXQpOwoJcHJpbnRmKCJJbnB1dCBhIHN0cmluZzogIik7CglzY2FuZigiICU5OVteXG5dIiwgc3RyKTsKCWxlbiA9IHN0cmxlbihzdHIpOwoKCWlmIChpbnB1dCA9PSAnYicpewoJCWZvcihpID0gMDsgaSA8IGxlbjsgaSsrKQoJCQlwdXNoKHN0cltpXSk7CgkJZm9yKGkgPSAwOyBpIDwgbGVuOyBpKyspCgkJCXN0cltpXT1wb3AoKTsKCQlwcmludGYoIlJldmVyc2VkIFN0cmluZyBpczogJXNcbiIsIHN0cik7Cgl9CgllbHNlIGlmKGlucHV0ID09ICdhJyl7CgkJaW50IGNvdW50ID0gMDsKCgkJZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKXsKCQkJaWYoIWlzc3BhY2UoKHVuc2lnbmVkIGNoYXIpc3RyW2ldKSkKCQkJCXB1c2goc3RyW2ldKTsKCQl9CgoJCWZvciAoaSA9IDA7IGkgPCBsZW47IGkrKyl7CgkJCWlmIChpc3NwYWNlKCh1bnNpZ25lZCBjaGFyKXN0cltpXSkgfHwgdG9sb3dlcihzdHJbaV0pPT10b2xvd2VyKHBvcCgpKSkKCQkJCWNvdW50Kys7CgkJfQoKCQlpZiAoY291bnQgPT0gbGVuKQoJCQlwcmludGYoIiVzIGlzIGEgcGFsaW5kcm9tZVxuIiwgc3RyKTsKCQllbHNlCgkJCXByaW50ZigiJXMgaXMgbm90IGEgcGFsaW5kcm9tZVxuIiwgc3RyKTsKCX0KCXJldHVybiAwOwp9Cgp2b2lkIHB1c2goY2hhciB3b3JkKXsKCXRvcD10b3ArMTsKCXN0YWNrX3N0cmluZ1t0b3BdPXdvcmQ7Cn0KCmNoYXIgcG9wKCl7CgljaGFyIHdvcmQgPSBzdGFja19zdHJpbmdbdG9wXTsKCXRvcD10b3AtMTsKCXJldHVybiB3b3JkOwp9