Może być tu problem z kodowaniem znaków samego kodu źródłowego - polecam stworzyć warunek wg kodów ASCII.
Z kolei nie trzeba inicjalizować string'a pustą wartością, ponieważ on sam od siebie, od początku, jest pusty (taką właściwość dostarcza klasa std::string).