BYTE Buf[12];
Buf[0] = 0x7e;
Buf[1] = 0x00;
Buf[2] = 0x0b;
Buf[3] = 0x01;
Buf[4] = 0x7d;
Buf[5] = 0x5e;
Buf[6] = 0x2a;
Buf[7] = 0x01;
Buf[8] = 0x7d;
Buf[9] = 0xde;
Buf[10] = 0x01;
Buf[11] = 0x7f;
...
要求删掉其中的0x7d;
最后变成
Buf[0] = 0x7e;
Buf[1] = 0x00;
Buf[2] = 0x0b;
Buf[3] = 0x01;
Buf[4] = 0x5e;
Buf[5] = 0x2a;
Buf[6] = 0x01;
Buf[7] = 0xde;
Buf[8] = 0x01;
Buf[9] = 0x7f;
Buf[0] = 0x7e;
Buf[1] = 0x00;
Buf[2] = 0x0b;
Buf[3] = 0x01;
Buf[4] = 0x7d;
Buf[5] = 0x5e;
Buf[6] = 0x2a;
Buf[7] = 0x01;
Buf[8] = 0x7d;
Buf[9] = 0xde;
Buf[10] = 0x01;
Buf[11] = 0x7f;
...
要求删掉其中的0x7d;
最后变成
Buf[0] = 0x7e;
Buf[1] = 0x00;
Buf[2] = 0x0b;
Buf[3] = 0x01;
Buf[4] = 0x5e;
Buf[5] = 0x2a;
Buf[6] = 0x01;
Buf[7] = 0xde;
Buf[8] = 0x01;
Buf[9] = 0x7f;
BYTE* pBuf = new BYTE[nCount];if(pBuf != NULL)
{
memset(pBuf, 0, nCount);
}
else
{
return;
}
int nPos = 0;
for(int i = 0; i < nCount; i++)
{
if(Buf[i] != 0x7d)
{
pBuf[i]= Buf[i];
nPos++;
}
}
memset(Buf, 0, nCount);
memcpy(Buf, pBuf, nPos);//这时候,最后出来的nPos为处理后的字符个数。
//Buf经过处理以后,已经没有了0x7d;
int nCount = 12;//这个nCount需要赋值进去,不能用C语言风格的函数,比如sizeof或者其他的strlen都会计算失败
BYTE* pBuf = new BYTE[nCount];if(pBuf != NULL)
{
memset(pBuf, 0, nCount);
}
else
{
return;
}
int nPos = 0;
for(int i = 0; i < nCount; i++)
{
if(Buf[i] != 0x7d)
{
pBuf[nPos++]= Buf[i];
}
}
memset(Buf, 0, nCount);
memcpy(Buf, pBuf, nPos);//这时候,最后出来的nPos为处理后的字符个数。
//Buf经过处理以后,已经没有了0x7d;
2.数据范围很大,如楼上所说,这是一个排序的过程,去掉重复的即可,时间复杂度在O(N*LOGN)