在OC和Java中剩盒,都是有字符串包含的函數(shù)的,也就是A包含B的函數(shù)路召,但是在C++中是么有的,到了MFC中股淡,CString中還是沒有包括進(jìn)來,所以在這里我簡單的構(gòu)造了一個類似的函數(shù):
BOOL StringContainOtherString(CString szParentString, CString szChildString)
{
int nParLength = szParentString.GetLength();
int nChiLength = szChildString.GetLength();
if(nParLength < nChiLength)
{
return FALSE;
}
else if(nParLength == nChiLength)
{
if(szParentString == szChildString)
{
return TRUE;
}
else
{
return FALSE;
}
}
else if(nParLength > nChiLength)
{
if(nChiLength == 1)
{
int nFind = szParentString.Find(szChildString);
if(nFind != -1)
{
return TRUE;
}
else
{
return FALSE;
}
}
else if(nChiLength > 1)
{
CString szFirstWord = szChildString.Left(1);
int nFind = szParentString.Find(szFirstWord);
if(nFind == -1)
{
return FALSE;
}
else if(nParLength - nFind < nChiLength)
{
return FALSE;
}
else
{
for(int i = 0; i < nParLength + 1 - nFind - nChiLength; i++)
{
CString szCompareString = szParentString.Mid(nFind + i, nChiLength);
if(szCompareString == szChildString)
{
return TRUE;
}
}
}
}
}
}
簡單的說一下實現(xiàn)過程唯灵,有兩種實現(xiàn)方法(我想到的只有兩種稍微簡單點)贾铝,一種是去母版之中遍歷找,當(dāng)然我操作了一下埠帕,從子串的第一個開始找垢揩,不然的話就更麻煩了敛瓷,還有一種是先找到子串的第一個字符在母版中的位置,然后根據(jù)子串的長度在母版中從找到的位置截取同樣的長度呐籽,進(jìn)行比較,有相同的就包含了庶橱,這個是不是更簡單贪惹?