fork download
  1. // Online C compiler to run C program online
  2. #include <stdio.h>
  3. #include<stdlib.h>
  4. #include<string.h>
  5. struct Stack{
  6. int capacity;
  7. int top;
  8. char *items;
  9. }s;
  10. struct Stack * createStack(int cap){
  11. struct Stack *s;
  12. s= (struct Stack *)malloc(sizeof(struct Stack));
  13. s->capacity = cap;
  14. s->items = (char *)malloc((cap) *sizeof(char));
  15. s->top=-1;
  16. return s;
  17. }
  18. void pop(struct Stack *s){
  19. if(s->top==-1){
  20. printf("\nStack is empty");
  21. return;
  22. }
  23. printf("%c",s->items[s->top]);
  24. s->top--;
  25. }
  26. void push(struct Stack *s,int ele){
  27. if(s->top == s->capacity-1){
  28. printf("Stack is full");
  29. return ;
  30. }
  31. s->top++;
  32. s->items[s->top]=ele;
  33. }
  34.  
  35. int main() {
  36. char s[100],rev1[100],rev2[100];
  37. struct Stack *stack;
  38. printf("Enter String: ");
  39. fgets(s,sizeof(s),stdin);
  40. int len =strlen(s);
  41. stack = createStack(len);
  42. printf("Orignal string :%s",s);
  43. printf("Reversed using strrev : %s",s);
  44. int i=0;
  45. for(i=0;i<strlen(s)-1;i++){
  46. push(stack,s[i]);
  47. }
  48. printf("\nReversed Using stack: ");
  49. while(stack->top>=0){
  50. pop(stack);
  51. }
  52.  
  53. return 0;
  54. }
Success #stdin #stdout 0.01s 5320KB
stdin
Standard input is empty
stdout
Enter String: Orignal string :ɟX�Reversed using strrev : ɟX�
Reversed Using stack: ��X��