在一个文件夹里边,可以寻找具有相同部分的文件名有多少个。
#include <QDir>
#include <QDebug>
#include <string>
#include <QByteArray>
int main()
{
QString str;
QDir fileDir("/data/screen");
QFileInfoList list = fileDir.entryInfoList(QStringList() << "*.gif");
for (int i = 0; i < list.length(); i++)
{
qDebug() << list.at(i).baseName();
str.append(list.at(i).baseName() + " ");
}
qDebug() << str << "size:" << str.size();
int num = 0;
QByteArray tmp = str.toLatin1();
char *str1 = tmp.data();
while ((str1 = strstr(str1, "screen")))
{
num++;
str1 += 6;
}
qDebug() << "number:" << num;
return 0;
}
在代码中,会通过.gif的文件后缀名来获取文件夹里边的所有gif文件名。这些文件名都会存到QString声明的str里边,然后通过QByteArray tmp = str.toLatin1()和char *str1 = tmp.data(),将QString型字符串转换为char*型字符串。再使用库函数strstr()来寻找screen,每找到一个screen就在while里边的num累加一次,并将这个screen去除,然后去寻找下一个screen,直至结束。
下面是程序的输出结果: