C++中一个string不区分大小写查找的方法

今天在根据文件名的拓展名进行文件分类的时候,发现文件的拓展名是不区分大小写的,所以要根据拓展名进行简单分类的话,就需要一个string不区分大小写查找的方法。

size_t FindNoCase(string strSource, char* szTarget)
{
if(strSource.empty())
{
return string::npos;
}
string strSub = szTarget;
if (strSub.empty())
{
return string::npos;
}
for (string::iterator it = strSource.begin(); it != strSource.end(); ++it)
{
*it = tolower(*it);
}
for (string::iterator ite = strSub.begin(); ite != strSub.end(); ++ite)
{
*ite=tolower(*ite);//do not change szTarget context.
}
return strSource.find(strSub);
}

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注