/*
* Esercizio CODICE FISCALE:
* Cognome:
* -le prime 3 conosonanti
* -se non hai cononanti metti le vocali
* -se non hai vocali la terza lettera e' una X Es(YEX)
*
*
* Nome:
* -1∞,2∞,4∞ consonanti se ne ha 3
* -1∞,2∞,3∞ cononanti se non ha la quarta
*
* Created by Pietro on 02/02/2013.
* Copyright 2013. All rights reserved.
*
*/
#include <stdio.h>
#include<string.h>
//riceve un caratere e dice Vero se Ë vocale
int isvocali(carattere){
if(carattere=='A' ||carattere=='E'|| carattere=='I' || carattere=='O' || carattere=='U'||carattere=='a'|| carattere=='e'|| carattere=='i' ||carattere=='o' || carattere=='u'){
//True: sono vocali
return 1;
}
else{
//False: sono consonanti
return 0;
}
}
//Trasforma il carattere minuscolo in minuscolo
int maiuscolo(carattere){
if(97<carattere<122){
carattere=carattere+32;
}
}
int main(){
//Introduzioni delle variabili
char nome[20],cognome[30],nomec[20],cognomec[30];
char codfiscale[6];
int i,j,risn,risc;
int contatore=0;
char x='X';
//Input
printf("Inserisci il tuo nome: ");
gets(nome);
printf("Inserisci il tuo cognome: ");
gets(cognome);
//Inserimento cognome
for(i=0;i<strlen(cognome);i++){
risc=isvocali(cognome[i]);
//Funzionamento normale
if(risc==0 && contatore<4){
codfiscale[contatore]=cognome[i];
contatore=contatore+1;
}
if(contatore>=3){
break;
}
//Funzionamento ausiliario
if(i==strlen(cognome)-1 && contatore<4){
for(j=0;j<strlen(cognome);j++){
if(risc==1 && contatore<4){
codfiscale[contatore]=cognome[j];
contatore=contatore+1;
}
if(contatore<3){
contatore=contatore+1;
strcat(&x,codfiscale);
}
}
}
}
strcat(nomec,nome);
//Inserimento nome
for(i=0;i<strlen(nome);i++){
risn=isvocali(nome[i]);
//Funzionamento normale
if(risn==0 && contatore<6){
codfiscale[contatore]=nome[i];
contatore=contatore+1;
}
if (5<=contatore<7) {
i++;
if (5<=contatore<7 && risn==0) {
codfiscale[contatore]=nome[i];
contatore=contatore+1;
}
}
if(contatore>=6){
break;
}
//Funzionamento ausiliario
if(i==strlen(nome)-1 && contatore<7){
for(j=0;j<strlen(nome);j++){
if(risn==1 && contatore<7){
codfiscale[contatore]=nome[j];
contatore=contatore+1;
}
if(contatore<6){
contatore=contatore+1;
strcat(&x,codfiscale);
}
}
}
}
strcat(cognomec,cognome);
//Stampa della lista
for(i=0;i<strlen(codfiscale);i++){
printf("%c",codfiscale[i]);
}
//The End
getchar();
return 0;
}
Ho indentato solo una parte perché l'indentamento non lo dà in automatico