各位老师,最近写个小程序遇到一难题,就是如何验证一个字串是否包含在另一个字串中,为难的是,这个字串未必就是英文,可能是中文,而且编码还是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;
}
------解决方案--------------------------------------------------------
第二个函数 是获取 字符在字符串中的位置的。