Reversing order of words in a sentence using stack in C Language | C Program to Reverse the sentence
#include
#include
#include
struct linked_list
{
char *chr;
struct linked_list *next;
};
typedef struct linked_list node;
void push(node **p,char *x);
char *pop(node **p);
int main()
{
char a[50],*temp,*dup;
strcpy(a,"Hello Friends how are you... Enjoy lernc.blogspot.com ");
node * head=NULL;
temp=strtok(a," ");
while(temp != NULL)
{
dup=strdup(temp);
temp=strtok(NULL," ");
push(&head,dup);
}
strcpy(a,"");
while((temp=pop(&head))!=NULL)
{
strcat(a,temp);
strcat(a," ");
}
a[strlen(a)-1]='\0';
printf("%s\n",a);
return 0;
}
void push(node **p,char *x)
{
node *new_node;
new_node=(node *)malloc(sizeof(node));
new_node->chr=x;
new_node->next=*p;
*p=new_node;
}
char *pop(node **p)
{
char *temp=NULL;
node *tmp;
if(*p==NULL)
return (NULL);
else
{
temp=(*p)->chr;
tmp=*p;
(*p)=(*p)->next;
free(tmp);
return (temp);
}
}
No comments:
Post a Comment