如何用c语言,效验工号,姓名格式输入是否正确?

这是我要写职工管理程序,然后要细节处理到每一次输入都要检验是否正确,所以给每个信息写效验函数然后再调用,输入的都是字符串,
工号字符串为大写字母A或B后加四位数(A1043或B1056)
按字符串读取如何判断符合定义?
姓名字符串定义都为中文,姓名只有输入中文才算正确
每次输入工号,姓名,都要效验其格式是否正确,否则都要重新输入,
最开始我定义职工信息结构体里都是char num(20)
char name(20)

img

img

判断规则是什么,有规则才能判断
参考如下:

#include <stdio.h>
#include <string.h>
//按照你要求的第一个大写字母+后四位数
int isValid(char* buf)
{
  int i;
  if(strlen(buf) != 5) //长度不匹配,直接退出
  {
    printf("长度不符合\n");
    return 0;//
  }
  if(buf[0] <'A' || buf[0] > 'Z')
  {
    printf("第一个字符不是大写字母\n");
    return 0; //第一个字符不是大写字母,退出
  }
  for(i=1;i<5;i++)
    if(buf[i] < '0' || buf[i] > '9')
    {
      printf("第2-5位中有非数字字符\n");
      return 0;
    }
  //上面的条件都满足,则说明输入符合要求
  printf("输入符合要求\n");
  return 1;
}
 
int main()
{
  char buf[100]={0};
  gets(buf); //读取字符串
  if(isValid(buf))
    //输入合法时的处理
  else
    //输入不合法的处理
  return 0;
}

先把需求搞细了,然后开写。
1)判断工号,满足几个条件:
1.第一个必须是大写字母
2.后面连续4个数字
2)判断中文姓名,查查你使用的编码规范,
以utf-8编码规范为例,前5 bit可以区分1/2/3/4字节编码。