str.length() >= 7 && str.substr(str.length() - 7) == "goodbye"
Run Code Online (Sandbox Code Playgroud)
或者您可以使用boost :: ends_with,这可能更有效,因为它不会像分配新的字符串一样string::substr.
我可以使标准库版本更高效,如下所示:
str.length() >= 7 && std::equal(str.end() - 7, str.end(), "goodbye");
Run Code Online (Sandbox Code Playgroud)
实际上,现在我输入了它,我意识到它并不像我想象的那样繁琐,所以应该首选第一个版本.