53 lines
984 B
C++
53 lines
984 B
C++
/*
|
|
Nome: Mario
|
|
Cognome: Montanari
|
|
*/
|
|
|
|
#include <iostream>
|
|
|
|
#define SIZE 100+1
|
|
|
|
using namespace std;
|
|
|
|
int isAlpha(char c);
|
|
int isNum(int c);
|
|
|
|
int main(void) {
|
|
char src[SIZE];
|
|
|
|
cin.getline(src, SIZE);
|
|
|
|
if (strlen(src) != 16) {
|
|
cout << "Codice fiscale incorretto!" << endl;
|
|
}
|
|
|
|
bool codiceFiscale = true;
|
|
|
|
for (int i = 0; i < 16; i++) {
|
|
if ((i < 6 && !isAlpha(src[i])) ||
|
|
(i >= 6 && i < 8 && !isNum(src[i])) ||
|
|
(i == 8 && !isAlpha(src[i])) ||
|
|
(i >= 9 && i < 11 && !isNum(src[i])) ||
|
|
(i == 11 && !isAlpha(src[i])) ||
|
|
(i >= 12 && i < 15 && !isNum(src[i])) ||
|
|
(i == 15 && !isAlpha(src[i]))) {
|
|
codiceFiscale = false;
|
|
}
|
|
}
|
|
|
|
if (codiceFiscale) {
|
|
cout << "Codice fiscale corretto!" << endl;
|
|
} else {
|
|
cout << "Codice fiscale incorretto!" << endl;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
int isAlpha(char c) {
|
|
return (c >= 'A' && c<= 'Z') || (c >= 'a' && c<= 'z');
|
|
}
|
|
|
|
int isNum(int c) {
|
|
return (c >= '0' && c <= '9');
|
|
} |