如何从 fgets 中检测空字符串

2024-03-07

我试图将 stdin 中的 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,但没有成功。

Thanks!


我认为这是最具可读性的(但性能不佳):

if (strlen(input) != 0) {
    printf("hi");
}

但为了教学,这里是你的风格,但随后固定:

if (input[0] != '\0') {
    printf("hi");
}

Why input[0]?因为input如果您像这样比较它,则其作用就像指向数组第一个元素的指针,并且您首先必须取消引用它以使比较有用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 fgets 中检测空字符串 的相关文章

随机推荐