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

    for(; count>0; count--)
        ;
    printf("%d\n", count);
    if(count > 0)
    {   
        ;//func   
    }
代码2
unsigned int count = 100;

    while(count--)
      ;
    printf("%d\n", count);

    if(count > 0)
    {   
        ;//func   
    }

代码1在VC里执行无误, 代码2执行错误。 在代码2里从 printf 输出的值看出 count的值是无效的 因为count的作用域只限于while条件里。

打好基础,学会站在巨人的肩膀上!
2012-11-21 21:50
wengege
Rank: 2
等 级:论坛游民
帖 子:148
专家分:93
注 册:2012-7-23
收藏
得分:0 
呵呵, 谢谢版主的提议, 这次真是次深刻教训。。。

打好基础,学会站在巨人的肩膀上!
2012-11-21 22:00
快速回复:被字符串给虐了。。。
数据加载中...
 
   



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

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