我正在学习基本的C++,现在我已经从用户那里得到了一个字符串,我想检查他们是否键入了整个文件名(包括.txt)。我有字符串,但是如何检查字符串是否以“.txt”结尾?

string fileName;

cout << "Enter filename: \n";
cin >> fileName;

string txt = fileName.Right(4);
Right(int)方法仅适用于CString,因此上面的代码不起作用。如果可能,我想使用常规字符串。有任何想法吗?

最佳答案

不幸的是,这个有用的功能不在标准库中。这很容易写。

bool has_suffix(const std::string &str, const std::string &suffix)
{
    return str.size() >= suffix.size() &&
           str.compare(str.size() - suffix.size(), suffix.size(), suffix) == 0;
}

10-08 00:49