Both your teachers are full of crap.
Use ==.
Keep in mind, though, that == is limited to an exact match comparison and only returns bool. You can get a little more information back using functions like string.compare().
Hope this helps.
[EDIT]
I should give a little more info.
For the first teacher: if system load were to affect your code then there is something seriously wrong with your compiler. Chances are that == just calls the compare function... (but I don't actually know, having not bothered to read the STL code for it).
For the second teacher: why waste time and space converting a C-string to a std::string when you have a function that will do what you want perfectly well without going through the long winded and wholly unnecessary effort... Kind of like this sentence, no?
@rugae, just smile and nod when they start spouting stuff about odd behavior and extra hoops. :wink: