我正在尝试检测来自标准输入的fgets输入是否为空(当我按下回车而不输入任何内容时)。这是我的程序:
int main()
{
char input[1000];
printf("Enter :");
fgets(input, 1000, stdin);
input[strlen(input) - 1] = '\0';
if(input != '\0'){
printf("hi");
}
return 0;
}
我希望能添加一些条件,以使其不打印任何内容,但很明显这种方式是不正确的。我还尝试了NULL,但没有成功。
谢谢!
input
来自何处,那行代码都不会有任何作用。strlen
函数只是在字符串中搜索第一个'\0'
,因此根据定义,input[strlen(input) - 1] == '\0'
。它唯一可能改变的是如果input
没有以 null 结尾,并且在程序地址空间耗尽之前没有跟随任何'\0'
,则会引入 segfault。 - Aaron Dufour