在pArray缓冲区,查找subString字符串,如存在,返回当前位置,否则返回-1

本文介绍了一个用于在缓冲区中查找特定子串的C++函数。该函数名为Pos,它接收子串、缓冲区队列及起始位置作为参数,并返回子串在缓冲区中的位置或未找到时返回-1。

/*--------------------------------------------------------------------
【函数介绍】: 在pArray缓冲区,查找subString字符串,如存在,返回当前位置,否则返回-1
【入口参数】: pArray:指定接收到的缓冲区队列
【出口参数】: pArray:指定接收到的缓冲区队列,解析后需要进行适当修改
【返回  值】: -1表示没有找到指定的子串,>=0表示发现第1个子串的位置
---------------------------------------------------------------------*/
int CGPS::Pos(LPCSTR subString , CByteArray * pArray,int iPos)
{
 //得到子串长度
 int subLen = strlen(subString);
 //得到缓冲区的长度
 int bufLen = pArray->GetUpperBound()+1;//获取数组的最高下标GetUpperBound

 bool aResult = TRUE;
 //
 for ( int i=iPos;i<bufLen-subLen+1;i++)
 {
  aResult = TRUE;
  for (int j=0;j<subLen;j++)
  {
   if (pArray->GetAt(i+j) != *(subString + j))
   {
    aResult = FALSE;
    break;
   }
   int k = 0;
  }
  if (aResult)
  {
   return i;
  }
 }
 return -1;
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值