str="sdfdf<<b>>>dsfdsfsdf<<1234>>>sdfsf"
我想得到<<与>>>之间的内容,即
b
1234
求代码
我想得到<<与>>>之间的内容,即
b
1234
求代码
解决方案 »
- D3D画线怎么画?
- 关于工程中引入CxImage这个类的问题
- 急!哪位大侠能帮忙写一下树(TREECTRL由数据库生成),因为急着要,所以解决了立即给分
- 使用MapViewOfFile函数出现拒绝访问的错误
- 关于CButtonST的问题,知道的大哥进来帮下
- 怎样使用VC访问unix下的sas数据仓库?
- 《深入浅出MFC》书中的错误
- 谁有Xtreme Toolkit的注册版?(可以交换啊)
- CMIWnd能处理mpeg格式的数据吗?windows自带媒体播放器是否就是CMIWnd的体现?
- 关于窗口显示位置的问题.知道的请举手*^_^*
- 完成端口数据投递问题,做过的来指点下
- 节点展开的问题,大家来帮忙!
CString::GetAt
CString::Mid
CString::Left
CString::Right
字符串查找函数:
CString::Find
CString::ReverseFind
CString::FindOneOf用这些就够了
如果决定长期发展,我的建议是:不要用 CString 类,一个字节一个字节的读,然后进行分析。思路:1、每次读取一个字节;
2、判断是不是“<”;
3、如果不是,判断下一个;
如果是,做标记;
4、判断下一个;
如果不是“<”,判断下一个;
如果是“<”,做标记,记录位置(表示后边的内容就是需要的);
5、判断下一个;
如果是“>”,做标记,开始累计;
如果不是“>”,累计清零;
6、判断下一个;
如果是“>”,做标记,开始累计;
如果不是“>”,累计清零;
7、直到连续三个“>”出现,表示遇到了结束符,记录位置;
8、根据两次记录的位置,获取内容;
我说的不一定全对,但是用这种方法做过后,在遇到类似的问题你就不怕了。
int fnSplitString(const CString& strString, const CString& strSplit1, const CString& strSplit2, CStringArray& csaRet)
{
CString strInput = strString;
int nCount = 0;
int nStep = 0;
int i; csaRet.RemoveAll();
if (strInput.IsEmpty())
return nCount;
else
{
while (true)
{
if (nStep == 0)
{
i = strInput.Find(strSplit1);
if (i = -1)
return nCount;
else
{
strInput.Delete(0, i + strSplit1.GetLength());
nStep = 1;
}
}
else
if (nStep == 1)
{
i = strInput.Find(strSplit2);
if (i = -1)
return nCount;
else
{
csaRet.Add(strInput.Left(i));
nCount++;
strInput.Delete(0, i + strSplit1.GetLength());
nStep = 0;
}
}
}
}
}