C语言如何判断输入字符串符合自定义要求?

我需要一个效验调用函数,
来效验输入的字符串是否符合自定义的要求
百度和CNSD 搜编了都没有具体的例子

如,我所定义的字符串的组成是第一个大写字母+后四位数
如:A1043或者B1054
即字符串只由大写字母与数字组成

标准c或c++并不支持正则,除非导入第三方库
其实题主的问题用c解决并不难,思路大概如下
不同的校验规则写不同function

byte IsCapNums(char str[]){
    int l=strlen(str);
    if(l<2) return 0;
    if(str[0]<'A'||str[i]>'Z') return 0;
    for(int i=1;i<l;<i++) if(str[i]<'0'||str[i]>'9') return 0;
    return 1;
}

char str[];
scanf_s("%s",str);
byte r=IsCapNums(str);
if(r==0) printf_s("输入不正确");else printf_s("输入正确");

字符串是由一个一个的字符组成,每个字符都有一个自己对应的ASCLL码值,比如说‘0’的ACSLL码值是48,‘A’的ACSLL码值是65,‘a’的是97,通过ACSLL码值对输入的字符串数组一个一个字符进行判断ACSLL码值对范围就可以知道输入的是否符合要求了。

可以试试使用正则表达式来匹配

#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;
}