【问题标题】:IF statement. Variables [duplicate]如果声明。变量 [重复]
【发布时间】:2017-02-16 11:44:02
【问题描述】:

我正在尝试实现 IF 语句
在我的C-Server中。

read(client_fd,received_data,100);
printf("%s",received_data);

如果接收到的数据等于“test”,我想打印“ooo

if (received_data == "test") {
printf('ooo');
}

?

上面的例子会导致错误。 (无法编译)

我对 C 了解不多。

更新:

现在我可以正常编译了(将 'ooo' 更改为 "ooo" 后)
但是虽然我正在向它发送“测试”.. if 语句没有做任何我认为的事情。

【问题讨论】:

  • 多个问题.. C 中的字符串必须在双引号内,字符在单引号内。你不能使用==比较字符串,使用strcmp()
  • "results in errors" — 错误信息是什么意思?
  • @Haris,使用双引号修复了编译错误。我向它发送了“test”,但我认为如果没有触发语句。我尝试了“=”而不是“==”..编译错误。
  • @Joey,使用strcmp()。如果字符串=== 将不起作用。

标签: c


【解决方案1】:

== 不适用于 const char *。 请改用strcmp

【讨论】:

  • 你如何使用它? if (received_data strcmp "test") ?
  • 答案听起来有点误导我。 == 确实适用于 const char *,但不是 OP 认为的那样......
  • @HolyBlackCat 我没有得到那个评论
  • @PiotrKamoda 抱歉,这是一个错字。已编辑。你现在明白了吗?
  • 对,我没有对那个 xD 做太多的细节假设它是一个简化。
猜你喜欢
  • 2016-01-20
  • 1970-01-01
  • 1970-01-01
  • 2020-01-15
  • 2013-07-15
  • 1970-01-01
  • 1970-01-01
  • 2011-10-28
  • 1970-01-01
相关资源
最近更新 更多