LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1047|回复: 12

一个条件判断语句,糊涂了。

[复制链接]
发表于 2003-9-26 09:37:51 | 显示全部楼层 |阅读模式
变量t1="GET",
判断语句:
     if(t1!="GET")
       printf("400 bad request.\n");
     else
       printf("200 ok.\n");
输出结果:400 bad request.
我不知道这是为什么?照理说,应该是ok啊?
发表于 2003-9-26 10:13:57 | 显示全部楼层
不是这样比的吧?

你的T1是什么样子的?声明成什么?
发表于 2003-9-26 10:31:33 | 显示全部楼层
t1是什么类型的阿~?
发表于 2003-9-26 10:54:30 | 显示全部楼层
You should use:
if (strcmp(t1, "GET") == 0)

Please read more about string and character pointer.
 楼主| 发表于 2003-9-26 12:07:51 | 显示全部楼层
char *t1,*t2,*t3;
t1= strtok(buf, " ");
t2= strtok(NULL," ");
t3= strtok(NULL,"\r\n");
这样的做法,我不知道正不正确。
 楼主| 发表于 2003-9-26 12:14:44 | 显示全部楼层
strtok函数是不是很不安全啊?
但是我也找不到更好的分析字段的方法。
能给点建议吗?各位。
还有,感谢上面回答的兄弟。
发表于 2003-9-26 12:31:44 | 显示全部楼层
t1!="GET"
这里是地址的比较而不是内容的比较
strtok只是不可重入
如果不会在多线程中使用还是安全的
 楼主| 发表于 2003-9-26 12:38:26 | 显示全部楼层
我一直以为在想怎么才能让指针存储内容,但是在比较的时候又是内容的比较,所以糊涂了。
无双点明了,谢谢。
能再给点其他详细的说法吗?
发表于 2003-9-26 13:08:24 | 显示全部楼层
指针只可以指向
不可以保存
因为没有自己的空间

相当一个标记

数组可以保存
因为有自己的空间
但不可以指向
如 int a[10],b[10];
a=b;
这样是指向 是错误D
发表于 2003-9-26 14:25:02 | 显示全部楼层
呵呵,字符串是不能这样比较的。用operator "!="只是比较地址,可以用strcmp(),楼上的兄弟已经说了,不用函数,自己也可以写出代码来呀,算做是个锻炼。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表