int StringData::findNoCase(const StringData& match, int start/*=0*/) { const char* pStrCompare = match.getDataBuf(); const char* pStr = getDataBuf(); int iLen = match.length(); int iMaxLen = length(); for (int i = 0; i <= iMaxLen - iLen; i++) { if (!compareNoCase(pStr + i, pStrCompare, iLen)) return i; } return -1; }
int StringData::findlastNoCase(const StringData& match, int stop/*=-1*/) const { if (stop >= (int) buf.size() || stop <= 0) stop = buf.size() - 1; const char* pStr = buf.c_str(); const char* pCompare = match.getDataBuf(); int len = match.length(); for (int i = stop - len + 1; i >= 0; i--) { if (!compareNoCase(pStr + i, pCompare, len)) return i; } return -1; }