c - 如何从 fgets 中检测空字符串

标签 c input fgets

我正在尝试检测来自标准输入的 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/

相关文章:

c++ - 如何编写安全且用户友好的 c/c++ #define 宏

php - 在不编写扩展的情况下在 PHP 中使用 C/C++ 代码

c - 在 C 字符串初始化中包含 {} 是否重要?

c - 使用 fgets() 的段错误

c - 程序在 while 循环 fget() 之后停止

c - 将 c 控制台输入拆分为整数

c - 奇怪的情况: sending file from server

jquery - 单击 <input type=file> 按钮后如何设置表格奇数/偶数行样式

javascript - 每次点击更改按钮类和值

c - "Freezing"控制台中的输入行并打印在上面的行上?