In my code, I cannot seem to push other string values other than the last value I have input. I know it's just a problem with storing string/char* in my stack/queue, because I have tried changing it to variable type int and it worked.
You are pushing the same memory address into your queue while reusing the memory that address points to. Obviously, then, when you dereference the address, the original contents of that memory has changed because you've changed it through reuse.
If your intention is to store strings you have a couple options and none of them require that you repeatedly insert the same address into your queue. The simplest solution would be to use std::string to store the strings.