如何在字符串中查找完全匹配的单词 比如,字符串为,This is a (word123) .如果我查找word,判定为该字符串不存在,查找word123,则认为存在,找到后返回指向w字符位置位置的指针。(单词word123前后的字符如果是非数字和非字母则认为该字符串存在)解决问题立即给分,决不食言!!!!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 mfc atlwtl->CString : find()其他:可用stl::string::find()可以解决, 不过find()之后要手工判断以下 没有这样的函数,不过实现起来很简单,只要用CString::Find()找到要找的字符串,就可以得它前后的字符,只要前后的字符都不是数字或字母就OK啦int NewFind(CString strAll,CString strFind){int nPos= strAll.Find(strFind);char per = strAll[nPos-1];char rear = strAll[nPos+strFind.GetLength()];if((per>='0' && per <=9)||(per>='a' && per<='z')||(per>='A' && per<='Z'))return -1;if((rear>='0' && rear <=9)||(rear>='a' && rear<='z')||(rear>='A' && rear<='Z'))return -1;return nPos;}} CString str="This is a (word123)",str1="word",strLeft=" (",strRight=" )"; BOOL bFind=FALSE; int j=0; while (!bFind) { int i=str.Find(str1,j); BOOL bLeft=FALSE,bRight=FALSE; if(i!=-1) { if(i>0) { if(strLeft.Find(str[i-1])!=-1) { bLeft=TRUE; } }else { bLeft=TRUE; } if(i+str1.GetLength()<str.GetLength()-1) { char c=str[i+str1.GetLength()]; if(strRight.Find(c)!=-1) { bRight=TRUE; } }else { bRight=TRUE; } if(bLeft&&bRight) { break; }else { j=i+1; } }else { break; } } 急,高分求教。关于操作系统问题 在线 === opengl 里面的一个小问题 容器清空问题,文件清空问题?。在线等 请问SDL怎么用在MFC上,总是出这个错误! 借这边人气请教几个DLL中的c函数在VB中声明的问题 编译时错误,帮忙解决,谢谢 推荐一本关于API函数的书! 请教关于锁定屏幕的问题? 菜鸟关于开发IE插件问题 一个关于安全的问题 怎么保存bmp文件? ????????????????????????????????????????????????????????????????????????
atl
wtl
->CString : find()
其他:
可用stl::string::find()
可以解决, 不过find()之后要手工判断以下
int NewFind(CString strAll,CString strFind)
{
int nPos= strAll.Find(strFind);
char per = strAll[nPos-1];
char rear = strAll[nPos+strFind.GetLength()];
if((per>='0' && per <=9)||(per>='a' && per<='z')||(per>='A' && per<='Z'))
return -1;
if((rear>='0' && rear <=9)||(rear>='a' && rear<='z')||(rear>='A' && rear<='Z'))
return -1;
return nPos;
}}
BOOL bFind=FALSE;
int j=0;
while (!bFind)
{
int i=str.Find(str1,j);
BOOL bLeft=FALSE,bRight=FALSE;
if(i!=-1)
{
if(i>0)
{
if(strLeft.Find(str[i-1])!=-1)
{
bLeft=TRUE;
}
}else
{
bLeft=TRUE;
} if(i+str1.GetLength()<str.GetLength()-1)
{
char c=str[i+str1.GetLength()];
if(strRight.Find(c)!=-1)
{
bRight=TRUE;
}
}else
{
bRight=TRUE;
}
if(bLeft&&bRight)
{
break;
}else
{
j=i+1;
}
}else
{
break;
}
}