#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<ctype.h>
#include<string.h>
typedef struct Stack
{
char info;
struct Stack *next;
}Stack;
Stack *start=NULL;
Stack *cstart=NULL;//variable for copy of stack
Stack *rstart=NULL;//variable for reverse of stack
Stack* push(Stack *, char);
char pop(Stack *);
int main()
{
char c;
int flag=0;
printf("Enter characters :");
c=getchar();
while( c !='\n' )
{ //Checking whether 'c' is a alphabet or not.
//White space is also not allowed.ASCII of space is 32
//by writing c!=32 I mean that ASCII of c will not be 32
if( isalpha(c) && (c!=32) )
{
start=push(start,c);
cstart=push(cstart,c);
}
c=getchar();
}
while( start!=NULL )
{
rstart=push( rstart, pop(start) );
}
while( rstart!=NULL )
{
if( toupper( pop(rstart) ) == toupper( pop(cstart) ) )
flag=1;
else
{
flag=0;
break;
}
}
if(flag==1)
printf("The string is a palindrome");
else
printf("The string is not a palindrome");
getch();
return 0;
}
Stack* push(Stack *rec, char info)
{
Stack *new_rec;
new_rec=(Stack *)malloc(sizeof(Stack));
new_rec->info=info;
new_rec->next=rec;
rec=new_rec;
return rec;
}
char pop(Stack *rec)
{
char ch;
Stack *temp;
if(rec==NULL)
printf("Stack is empty");
else
{
temp=rec;
ch=temp->info;
rec=rec->next;
free(rec);
}
return ch;
}
abdullahkafkas 0 Newbie Poster
jwenting 1,889 duckman Team Colleague
sanjulovers -3 Light Poster
abdullahkafkas 0 Newbie Poster
jwenting 1,889 duckman Team Colleague
Be a part of the DaniWeb community
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.