我正在尝试检测来自标准输入的 fgets 输入是否为空(当我按 enter 键而没有输入任何内容时)。这是我的程序:
int main()
{
char input[1000];
printf("Enter :");
fgets(input, 1000, stdin);
input[strlen(input) - 1] = '\0';
if(input != '\0'){
printf("hi");
}
return 0;
}
我想做一些让它不打印任何东西的条件,但显然这种方式是不对的。我也试过 NULL,但没有用。
谢谢!
最佳答案
我认为这是最可读的(但不是最高效的):
if (strlen(input) != 0) {
printf("hi");
}
但为了教学这里是你的风格,但随后固定:
if (input[0] != '\0') {
printf("hi");
}
为什么输入[0]
?因为如果您像那样比较 input
就像指向数组第一个元素的指针,并且您首先必须取消引用它才能使比较有用。
关于c - 如何从 fgets 中检测空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8058704/