当前位置: 代码迷 >> VC >> VC++2005 中怎么验证一个字串是否包含在另一个字串中
  详细解决方案

VC++2005 中怎么验证一个字串是否包含在另一个字串中

热度:8648   发布时间:2013-02-25 00:00:00.0
VC++2005 中如何验证一个字串是否包含在另一个字串中?
各位老师,最近写个小程序遇到一难题,就是如何验证一个字串是否包含在另一个字串中,为难的是,这个字串未必就是英文,可能是中文,而且编码还是UTF8。举例来说吧:

1.判断 "abcdefg" 中是否包含 "ab" 。

2.判断 "abceefg" 中是否包含 "中文",当出现一个字串是中文的时候,字串来源是UTF-8编码。

3.判断 "中文输入测试" 是否包含 "ab", 字串来源是UTF-8编码。

4.判断 "中文输入测试" 中是否包含 "中文",当出现两个字串都是中文的时候,字串来源都是UTF-8编码的。

头都大了,到底如何是好,请各位不吝赐教!

到九点前我会不定时上线,谢谢!

------解决方案--------------------------------------------------------
strstr
wcsstr
------解决方案--------------------------------------------------------
采用unicode字符串,CString,然后Find这样就能查找中英文等
------解决方案--------------------------------------------------------
CString里面的Find函数
正则表达式也可以
------解决方案--------------------------------------------------------
Brew 吧??

大写的STRSTR、

或者我给你个函数。。


如果需要转码就用这个 UTF8TOWSTR 参数自己查找

bool strends(char szBuffer[],const char szEndData[])
{
//定义
int nEnd=0;
int nSize=0;
int nFindCount=0;
 
//计算大小
nEnd=(int)strlen(szEndData);
nSize=(int)strlen(szBuffer);

//循环便利
for(int i=nEnd-1,j=nSize-1;i>=0;--i,--j)
{
if(szBuffer[j]==szEndData[i])
nFindCount++;
}

//满足条件
if(nFindCount==nEnd)
return true;

//不满足条件
return false;
}

int strfind(char szBuffer[],const char nChar)
{
//定义
int nSize=0;

//计算大小
nSize=(int)strlen(szBuffer);

//循环便利
for(int i=0;i<nSize;++i)
{
if(szBuffer[i]==nChar)
return i;
}

//没有找到
return -1;
}
------解决方案--------------------------------------------------------
第二个函数 是获取 字符在字符串中的位置的。
  相关解决方案