有没有办法不使用regex库就知道字符串是否以“再见”结尾?
也许用strcpy,strlen,ecc。
最佳答案
str.length() >= 7 && str.substr(str.length() - 7) == "goodbye"
或者可以使用boost::ends_with,这可能更有效,因为它不像
string::substr
那样分配新字符串。我可以让标准库版本更高效一些,比如:
str.length() >= 7 && std::equal(str.end() - 7, str.end(), "goodbye");
实际上,现在我把它打印出来了,我意识到它并不像我想象的那么麻烦,所以这可能比第一个版本更好。