导航
  • 主页
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

急问:关于cstring的简单问题

oktsl 2009-08-26 02:42:37
unsigned char buffer[7]={0xA5,0XA5,0X60,0XC8,0X00,0X00,0X00};
CString a;
a=buffer;
//cout<<a.Find(0xA5A5);

怎么样用cstring的find函数找到A5A5的index
比如a.Find(0xA5A5)就是0啦
{0x44,0xA5,0xA5,...}就是1啦


怎么搞??
多谢了,急呀
...全文
92 点赞 收藏 12
写回复
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
oktsl 2009-08-26
unsigned char* 转到char *
怎么样不丢掉末尾的0啊
比如unsigned char buffer[7]={0xA5,0XA5,0X60,0XC8,0X00,0X00,0X00};
后面的0x00都会丢掉
郁闷
回复
ziplj 2009-08-26
[Quote=引用 9 楼 oktsl 的回复:]
如果真用4楼的办法找A5,不用cstring来处理
怎么找连续的2个A5啊,就是怎么找A5A5啊
[/Quote]
要找连续的A5 就只能将A5A5放在子字符串里面 查找
CString strSon;
memcpy((LPTSTR)(LPCTSTR)strSon , buf[0],2);
int i = a.Find(strSon);
回复
secretcf 2009-08-26
自己改一下findindex函数,比较两个字符不就行了. 多写代码.
回复
oktsl 2009-08-26
如果真用4楼的办法找A5,不用cstring来处理
怎么找连续的2个A5啊,就是怎么找A5A5啊
回复
Fly_1101 2009-08-26
a.Find("\xA5\xA5")
回复
feilinhe 2009-08-26
4楼挺好的了
求长度用len=sizeof(buffer)/sizeof(buffer[0]);
回复
雪影 2009-08-26
直接用循环查找吧,非字符串数据不要用CString
使用楼上的代码
回复
oktsl 2009-08-26
呵呵,因为我原来是用cstring写的算法,为了移植整体啊 没办法啊

最后一个问题:

unsigned char buffer[]={0xA5,0XA5,0X60,0XC8,0X00,0X00,0X00};

怎么求buffer的长度??????

多谢了
回复
secretcf 2009-08-26
需要用CString查找么!
直接比较查找不久可以了。

int findindex(unsigned char* p, int n, unsigned char c)
{
int index = -1;

int i = 0;
for(i=0; i<n; i++)
{
if(p[i] == c)
{
index = i;
break;
}
}

return index;
}

int index = findindex(buffer, sizeof(buffer));
回复
oktsl 2009-08-26
关键问题在于我处理的是一个字节的unsigned char
回复
和黑1 2009-08-26
int Find( LPCTSTR lpszSub ) const;
回复
healer_kx 2009-08-26
http://topic.csdn.net/u/20080803/11/56d4d8ab-5114-45f6-83c5-af74b600f240.html
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……