【发布时间】:2014-01-27 22:59:25
【问题描述】:
我已经编写了一些简单的代码作为 SSCCE,我正在尝试检查输入的字符串是否等于我在 char 指针数组中定义的字符串,所以它应该指向该字符串并给我一个结果.我没有收到任何警告或错误,但我没有得到任何结果(“真”或“假”)
scanf 是否正在扫描其他内容?终止符号还是什么?我只是无法让它打印出真假
代码:
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#define LENGTH 20
//typedef char boolean;
int main(void)
{
const char *temp[1];
temp[0] = "true\0";
temp[1] = "false\0";
char var[LENGTH];
printf("Enter either true or false.\n");
scanf("%s", var);
if(var == temp[0]) //compare contents of array
{
printf("\ntrue\n");
}
else if(var == temp[1]) //compare contents of array
{
printf("\nfalse\n");
}
}
【问题讨论】:
-
您不会将 C 字符串与
==进行比较,而是将strcmp进行比较... -
是的,我想了很多,但没有办法与 == 进行比较吗?我可能在这里的另一个答案中被误导了
-
不,没有。还有其他错误,但我没有解决这些错误,因为您的问题是关于字符串的比较。
-
@user2387699 不,没有。也许他们将 C 和 C++ 混淆了,因为标准字符串类有一个直观的
==运算符。 -
@H2CO3 放置 2 个空终止符,以确保字符串真正终止:P
标签: c string string-comparison