怎么在一个char*字符串中截取出两个指定子串的中间部分?

大概就是读取一个文件,我是这么写代码的:
FILE * inFile;
if ( ( inFile = fopen( mMsgPath.c_str(), "rb") ) == NULL ) {
return false;
}
fseek(inFile, 0, SEEK_END);
fileLen = ftell(inFile);
fseek(inFile,0, SEEK_SET);

char* infoData = new  char[fileLen];
fread(infoData, 1, fileLen, inFile);
fclose(inFile);

然后我要从里头截取出“decode”和“over”之前的部分,并把截取的每一部分写入文件当中。我用strstr试了一下 居然找不到"over" 对指针不咋熟悉,大家帮我看看怎么实现这个功能?图片说明

MFC代码:

CString strTemp="";

strTemp = infoData;

long index_s=-1,index_e=-1;
index_s = strTemp.Find("decode);

if(index_s>=0)

{
index_e = strTemp.Find("over");

if(index_e >=0)

{
CString strResult = strTemp.Mid(index_s+6,index_e-index_s-6);//strResult就是“decode”和“over”之前的部分
}
}

看上去你的数据不是纯文本,是二进制数据,那么就不能用strstr,要用memmem。