Inoltre ho incluso nella codice una funzione che mi elimina gli spazi nei cognomi e nei nomi. Quindi se l'utente si chiama maria luisa, la funzione dà marialuisa. Ecco la funzione:
char * elimina_spazi (char * str)
{
int x=0, y=0, i;
for (i=0; i<str[i]; i++) {
if (str[i]==' ') {
x=i;
y=1;
break;
}
}
//codice che sposta le lettere
if (y==1) {
for (int i2=x; i2<str[i2]; i2++)
str[i2]=str[i2+1];
}
return str;
}
Poi quando l'utente inserisce il cognome e il nome, io lo leggo con fgets e non con scanf, e utilizzo la funzione appena creata
printf("Inserire cognome: ");
fgets(cognome, sizeof(cognome), stdin);
strcpy(cognome, elimina_spazi(cognome));
printf("Inserire nome: ");
fgets(nome, sizeof(nome), stdin);
strcpy(nome, elimina_spazi(nome));
Poi c'è il resto del codice e il programma mi calcola il codice fiscale. Ma inseriti i miei dati anzichè stamparmi in output F**FBA97*******Q mi stampa:
F**FB
97B******Q
Salta quindi la A di FBA e va a capo
Come mai?