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