分析文件名格式的字符串

时间:2014-03-09 04:12:34

标签: c++

正在将文件名传递给函数。需要检查字符串以确保它以“.bmp”结尾

如何检查以便以后打开文件?

例如:如果字符串包含“ picture.txt ”,它将告诉用户字符串的格式不正确。如果一个字符串包含“ picture.bmp ”,它应该接受它以便以后使用打开文件。

提前致谢!

2 个答案:

答案 0 :(得分:1)

您使用的操作系统是什么?如果是Windows / Visual C ++,那么您可以使用正确的函数为您提供给定文件名的扩展名(例如_spiitpath)。如果你想要一些可移植的东西,你可以使用boost :: filesystem来解析名称。

您应该使用这些功能而不是尝试自己烹饪的原因是可能存在您未考虑的角落或边缘情况,从而导致您的代码产生错误的结果。

答案 1 :(得分:0)

您可以这样做:

bool hasExtension(const string& filename, const string& extension)
{
  size_t fnlen = filename.length();
  size_t exlen = extension.length();
  if (fnlen < exlen)
     return false;

  return memcmp(filename.c_str() + fnlen - exlen, extension.c_str(), exlen) == 0;
}


int main()
{
  cout << hasExtension("file.txt", ".txt") << endl;
}