| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 710 人关注过本帖
标题:被字符串给虐了。。。
只看楼主 加入收藏
wengege
Rank: 2
等 级:论坛游民
帖 子:148
专家分:93
注 册:2012-7-23
结帖率:89.47%
收藏
已结贴  问题点数:10 回复次数:18 
被字符串给虐了。。。
unsigned int Count = 80000;

while(strstr(AT_Buff, "#)") == NULL && Count--)
;
if( Count )
{
    func;
}

写完上面程序后今天就被虐了,在while循环里限时匹配字符串 “#)” 如果在限定时间里匹配到字符串就执行func代码段。 可是程序并不是按我我的意愿执行的,因为AT_Buff里并没有要匹配的字符串,程序还是照样跑到func代码段 导致程序直接跑飞。
这个 if( Count ) 误导我一直以为缓冲区里有“#)” 字符串。 可是想了好久还是不明白为什么会跑到func代码段? 求分析啊。。

            
搜索更多相关主题的帖子: 字符串 缓冲区 
2012-11-21 20:24
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:5 
unsigned int Count = 80000;   
while(strstr(AT_Buff, "#)") == NULL && Count--)     未找到字符“#)” ture 和count的指不为0 ture 这个条件满足
;
if( Count )   执行这个地方判断count 是否不是0   ture   你这个地方很显然是不为0的 很显然满足执行要求   给我分把
{
    func;   执行  
}

[ 本帖最后由 zhu224039 于 2012-11-21 20:36 编辑 ]

我要成为嘿嘿的黑客,替天行道
2012-11-21 20:27
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
刚对不起  我学 16位汇编 把脑袋给整坏了
你这个程序的关系应该是
时间到了没  没到  字符找到了没 没找到,循环
时间到了没,没到,字符找到了没 找到 执行func

时间到了没 到了  结束循环 执行后面的语句

所以你的判定是处于一个分层的状态下的,而不是平行的两个条件都满足
应该是
while(count--)
{
  if(strstr(AT_Buff, "#)"))
   func
}

这个样的


[ 本帖最后由 zhu224039 于 2012-11-21 20:52 编辑 ]

我要成为嘿嘿的黑客,替天行道
2012-11-21 20:35
wengege
Rank: 2
等 级:论坛游民
帖 子:148
专家分:93
注 册:2012-7-23
收藏
得分:0 
回复 3楼 zhu224039
版主: 没明白你的意思。if( Count ) 非零才执行func的。

打好基础,学会站在巨人的肩膀上!
2012-11-21 20:53
wengege
Rank: 2
等 级:论坛游民
帖 子:148
专家分:93
注 册:2012-7-23
收藏
得分:0 
原理是一样的, 只是同时在while 里处理个人感觉习惯些。。

打好基础,学会站在巨人的肩膀上!
2012-11-21 20:55
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
是的  非0
 计算机只认识 0和1
对于不是0 的  统统的被认定为1

我要成为嘿嘿的黑客,替天行道
2012-11-21 20:57
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
unsigned作减法的时候有陷阱,这是反复提醒过的。

授人以渔,不授人以鱼。
2012-11-21 21:06
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
回复 7楼 TonyDeng
什么陷井 老大给说说啊

我要成为嘿嘿的黑客,替天行道
2012-11-21 21:08
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
count=0的时候还count--,那是极大正数。

授人以渔,不授人以鱼。
2012-11-21 21:09
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
好的记住了  谢谢老大

我要成为嘿嘿的黑客,替天行道
2012-11-21 21:09
快速回复:被字符串给虐了。。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017059 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved