In C++, a string can be described as a class for handling an array of characters; for example, text. I can't quite remember how to compare strings in C++(I use C mostly), but I'm pretty sure there is an operator to test this defined in the class.
Global variables are variables defined outside of any function, and are available to all functions in that file. They are not freed until the end of the program, so their value will always be there. The difference between declaring and defining, and the "extern" keyword, is beyond the scope of this explanation, so I won't go into it.
Local variables are variables defined inside a function, and are freed when the function returns, thus the values will no longer be there the next time the function is called unless they are declared with the "static" keyword. Local variables cannot be accessed by functions called from the function they were defined in, unless passed by reference, but they will still retain their value when the called function returns.