打印

strstr 函数用了之后有错误??

[复制链接]
5428|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lswlc0502|  楼主 | 2012-3-14 16:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用ICC_AVR 编译器

#include"string.h"

void main()
{
   unsigned char buffer[];
   if( strstr((char *) buffer, "OK") > 0 )
   {
       break;
    }
}

大概的原理就是这样,但编译出了一个问题.
operands of > have illegal types 'pointer to char and int'

大侠们.这是一个什么问题啊.我找了好多的资料,但是还是没有解决.实在没有办法了.到论坛上面问问.谢谢大侠们.

相关帖子

沙发
lxyppc| | 2012-3-14 16:44 | 只看该作者
operands of > have illegal types 'pointer to char and int'

使用了非法的类型进行>操作,"一个是指向char的指针类型,一个是int类型"

使用特权

评论回复
板凳
lswlc0502|  楼主 | 2012-3-14 16:58 | 只看该作者
嗯? 这个问题,要怎么改啊.两个数据都是char 型数据啊,

使用特权

评论回复
地板
西安农民工| | 2012-3-14 18:30 | 只看该作者
你还不懂strstr函数的用法就冒然使用,先查一下怎么用。
你的程序有两处错误:
1、给buffer初始化。
2、长这么大我还没见过,if中还可以加break。

修改:
#include"string.h"

void main()
{
   unsigned char buffer[] = "aaaaOKbbbbb";//初始化buffer
   if( strstr((char *) buffer, "OK") > 0 )
   {
       ;    //写你的处理函数,不写的话,可以加个分号就行。
    }
}

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
lswlc0502 + 1 很给力!
5
sunhq02| | 2012-3-15 08:36 | 只看该作者
你的buffer没有分配空间
至少得写成 buffer[XX], XX为buffer的容量

使用特权

评论回复
6
lswlc0502|  楼主 | 2012-3-15 09:15 | 只看该作者
哦,有的,我里的buffer 是写成了 buffer[400] ,也还是不行.

使用特权

评论回复
7
lxyppc| | 2012-3-15 09:29 | 只看该作者
strstr函数的返回值是char*类型,而小于操作不能用来比较指针和int值,所以出错了
你要想知道strstr的函数返回值是否合法,应该用!=号或是==号比较
if( strstr((char *) buffer, "OK") != NULL )

使用特权

评论回复
8
jiemnij| | 2012-3-15 10:56 | 只看该作者
7楼的回答在点子上

使用特权

评论回复
9
lxyppc| | 2012-3-15 11:22 | 只看该作者
7楼的回答在点子上
jiemnij 发表于 2012-3-15 10:56

我以为二楼就结束了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

7

帖子

1

粉丝