分析文件名格式的字符串
Analyzing a string for file name format
文件名正在向下传递给函数。需要检查字符串以".bmp"
结尾我如何检查以后打开文件?
例如:如果字符串包含"picture.txt",它将告诉用户字符串的格式不正确。如果字符串包含"picture.bmp",它应该接受它,以便以后打开文件时使用。
提前感谢!
你用的是什么操作系统?如果它是Windows/Visual c++,你有一些函数可以正确地给你一个文件名的扩展名(例如_spiitpath)。如果您想要一些可移植的东西,您可以使用boost::filesystem来解析名称。
您应该使用这些函数而不是尝试自己编造一些东西的原因是,可能存在您没有考虑到的角落或边缘情况,从而导致您的代码给出错误的结果。
你可以这样做:
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;
}
相关文章:
- 字符串::格式有什么用. 我也没有在互联网上得到它
- 如何检查字符串格式在读取C++文本文件时是否有效?
- 十进制到八进制递归C++.以标准::字符串格式输出
- 如何从字符串格式中提取 3 个整数"v%d.%d.%d"?
- 查找可变参数列表的字符串格式指定符
- 字符串格式替换为 snprintf 中字符中的值
- 使用堆栈将字符串格式的十进制转换为双精度
- 使用字符串格式限制十六进制数字的数量
- 视觉C++:字符串格式
- C++字符串格式实现错误
- 如何在Xcode中将长双精度转换为字符串格式?或如何解决错误"use of undeclared identifier 'to_string' "
- C++以字符串格式 YYYYMMDD 减去天数
- 如何在windows和linux中使用相同的宽字符串格式
- 如何将标准::字符串格式的 JSON 解码为 Boost 属性树
- C++格式的字符串格式
- 使用C++将任何形式的日期-时间字符串格式更改为美国日期-时间格式
- 使用C/C++设置字符串格式
- 如何创建以字符串格式使用给定变量文本的宏(或其他工具)
- 如何转换?toString() 的 C 字符串格式
- 用字符串格式运算符替换C++字符串