怎么验证用户输入的数据

如何验证用户输入的数据
C/C++ code
char departments[26];
scanf("%s", departments);



现在想验证用户输入的数据departments是否符合要求,字符串类型,长度26,我是这么弄的:


C/C++ code
   while (1)
    {
        rewind(stdin);
        if( scanf("%s", departments) == 1 )  /*验证输入*/
        {
            if (strlen(newUser->departments) > 26)
            {
                printf("\n长度最大26,请重新输入新用户院系:\n");
                printf("--> ");
            }
            else
                break;
        }
        else
        {
            rewind(stdin);
            printf("\n非法输入(长度最大26),请重新输入新用户院系:\n");
            printf("--> ");
        }
    }


但是感觉特麻烦,不能每次scanf都写这么长的代码验证输入吧?

可不可以写个函数,用于验证用户输入呢?可验证输入的变量类型、长度等。

------解决方案--------------------
char departments[26];

这不是已经定死了么
------解决方案--------------------
判断比较啊
------解决方案--------------------
char s[26];
fgets(s,26,stdin);
------解决方案--------------------
自己包装成一个函数就可以了,这个需要自己动手,一劳永逸……
另外char departments[26]太小,当心越界,建议用char departments[256];