#include <stdlib.h>
#include <stdio.h>
#include <string.h>
char result[100];
int result_end= 0;
typedef struct stack{
char* top;
char* end;
char A[100];
}stack_t;
void init_stack(stack_t* p_stack){
(*p_stack).top=&((*p_stack).A[0]);
(*p_stack).end=&((*p_stack).A[0]);
}
void pop(stack_t* p_stack){
if(p_stack->top != p_stack->end){p_stack->top--; }
while (p_stack->top != p_stack->end )
{
result[result_end]=*(p_stack->top);
result_end++;
p_stack->top--;
}
result[result_end]=*(p_stack->end);
result_end++;
}
void push(char var,stack_t* p_stack){
*(p_stack->top)=var;
p_stack->top++;
}
void main(){
char test[]="today yestoday the sky is blue";
char* p;
char *p1;
p = test;
p1 = p;
stack_t stack;
init_stack(&stack);
while(*(p1+1) != '\0'){p1++;}
while(p1 != p)
{
if(*p1==' ')
{pop(&stack);result[result_end]=*p1;result_end++;}
else
{push(*p1,&stack);}
p1--;
}
push(*p,&stack);
pop(&stack);
init_stack(&stack);
printf("%s",result);
#include <stdio.h>
#include <string.h>
char result[100];
int result_end= 0;
typedef struct stack{
char* top;
char* end;
char A[100];
}stack_t;
void init_stack(stack_t* p_stack){
(*p_stack).top=&((*p_stack).A[0]);
(*p_stack).end=&((*p_stack).A[0]);
}
void pop(stack_t* p_stack){
if(p_stack->top != p_stack->end){p_stack->top--; }
while (p_stack->top != p_stack->end )
{
result[result_end]=*(p_stack->top);
result_end++;
p_stack->top--;
}
result[result_end]=*(p_stack->end);
result_end++;
}
void push(char var,stack_t* p_stack){
*(p_stack->top)=var;
p_stack->top++;
}
void main(){
char test[]="today yestoday the sky is blue";
char* p;
char *p1;
p = test;
p1 = p;
stack_t stack;
init_stack(&stack);
while(*(p1+1) != '\0'){p1++;}
while(p1 != p)
{
if(*p1==' ')
{pop(&stack);result[result_end]=*p1;result_end++;}
else
{push(*p1,&stack);}
p1--;
}
push(*p,&stack);
pop(&stack);
init_stack(&stack);
printf("%s",result);