CString::Find
名称
CString::Find
编辑本段作用
在一个较大的 字符串中查找字符或子字符串
int Find( TCHAR ch ) const;
int Find( LPCTSTR lpszSub ) const;
int Find( TCHAR ch, int nStart ) const;
int Find( LPCTSTR pstr, int nStart ) const;
编辑本段返回值
返回此CString对象中与需要的子字符串或字符匹配的第一个字符的 从零开始的索引;如果没有找到子字符串或字符则返回-1。
编辑本段参数
ch 要搜索的单个字符。
lpszSub 要搜索的子字符串。
nStart 字符串中开始搜索的字符的索引,如果是0,则是从头开始搜索。如果nStart不是0,则位于nStart之前的 字符不包括在搜索之内。
pstr 指向要搜索的字符串的指针
编辑本段说明
此成员函数用来在此字符串中搜索子字符串的第一个匹配的字符。函数的 重载可以接收单个字符(类似于运行时函数strchr)和字符串(类似于strstr)。
编辑本段示例
//下面演示第一个例子
// CString::Find( TCHAR ch )
CString s( "abcdef" );
int n = s.Find( 'c' ); // 结果 n = 2
int f = s.Find( "de" ) ; // 结果 f = 3
ASSERT( n == 2 );
ASSERT( f == 3 );
// 下面演示第二个例子
// CString::Find(TCHAR ch,int nStart)
CString str("The stars are aligned");
int n = str.Find('e',2); //结果 n = 2
实现中国工商银行模糊匹配:
BOOL OcrForLogo::isGongHangLogo()
{
//根据字符串结果进行模糊匹配
BOOL isGHFlag=false;
int zhong,guo,gong,shang,yin,hang;
int n;
zhong = ocrStr.Find("中");
guo = ocrStr.Find("国");
gong = ocrStr.Find("工");
shang = ocrStr.Find("商");
yin = ocrStr.Find("银");
hang = ocrStr.Find("行");
if(gong!=-1)
{
if(zhong!=-1)
{
n = gong-zhong;
if(n==4)
{
isGHFlag=true;
}
else
isGHFlag=false;
}
if(guo!=-1)
{
n = gong-guo;
if(n==2)
{
isGHFlag=true;
}
else
isGHFlag=false;
}
if(shang!=-1)
{
n = shang-gong;
if(n==2)
{
isGHFlag=true;
}
else
isGHFlag=false;
}
if(yin!=-1)
{
n = yin-gong;
if(n==4)
{
isGHFlag=true;
}
else
isGHFlag=false;
}
if(zhong!=-1)
{
n = hang-gong;
if(n==6)
{
isGHFlag=true;
}
else
isGHFlag=false;
}
}
else
{
isGHFlag=false;
}
return isGHFlag;
}