/*
京A123C5 : 後五位有非規定字符!
津H88659 : 非歸屬地車牌!
京B1234 : 車牌號碼長度錯誤!
京AA12343 : 車牌號碼長度錯誤!
京A88880 : OK!
京C8865C : 後五位有非規定字符!
Press any key to continue
*/
#include?<iostream>#include?<cstring>
using?namespace?std;
#define?MAXLEN?8
int?CheckPlateNumber(char?platenumber[])?{
int?i;
char?belonging[5];
if(strlen(platenumber)?!=?8)?return?1;?//?編碼長度錯誤
belonging[0]?=?platenumber[0];
belonging[1]?=?platenumber[1];
belonging[2]?=?'\0';
if(strcmp(belonging,"京"))?return?2;?//?車牌所屬地錯誤
if(platenumber[2]?<?'A'?||?platenumber[2]?>?'Z')?return?3;?//?首號錯誤
for(i?=?3;?i?<?MAXLEN;?++i)
if(platenumber[i]?<?'0'?||?platenumber[i]?>?'9')?return?4;?//?其他錯誤
return?0;
}
int?main()?{
char?s[][MAXLEN?+?2]?=?{"京A123C5","津H88659","京B1234","京AA12343","京A88880","京C8865C"};
for(int?i?=?0;?i?<?6;?++i)?{
cout?<<?s[i]?<<?"?:?";
switch(CheckPlateNumber(s[i]))?{
case?0?:?cout?<<?"OK!\n";?break;
case?1?:?cout?<<?"車牌號碼長度錯誤!\n";?break;
case?2?:?cout?<<?"非歸屬地車牌!\n";?break;
case?3?:?cout?<<?"首號錯誤!\n";?break;
case?4?:?cout?<<?"後五位有非規定字符!\n";?break;
default:?cout?<<?"其他錯誤!\n";?break;
}
}
return?0;
}