如何限制Char在C

int main(void)
{
int studentnum = 2001041234;
char* firstname = "lux", * lastname = "ren", * middlename;

if (middlename)
{
    printf("%d-%s,%s", studentnum, lastname, firstname);
}
else
{
    fgets(middlename, 1, stdin);
    printf("%d-%s,%s%s", studentnum, lastname, firstname, middlename);
}
return 0;

}

我想限制middlename如果没有任何东西就是 printf("%d-%s,%s", studentnum, lastname, firstname);

如果有了那middlename只显示第一个字

我试过if (middlename = 0)但好像不能这样

middlename没有分配空间,下面代码都不行的,改为 char middlename[20] = {0};
if(middlename[0] = '\0') //表示middlename没东西
{
}
else
{
}

1.你应该是省略了一大段代码吧,middlename都没赋值呀
2.用strlen就可以获取字符串长度,如果你只是判断字符串里到底有没有东西,判断middlename[0]是不是0就行了
3.fgets有返回值的,返回一个字符串,而不改变原字符串,你这样使用相当于白写,你也可以直接输出middlename[0]或者*middlename,不用这么费劲

指针的话,要用NULL来代替0