PDA

View Full Version : Confronto tra stringhe c/c++


okay
15-10-2003, 03:16
Leggo in input il file AGENDA.txt.........
sia col turbo c++ 3.0 e vc 6.0
nessun errore.............ma non confronta la stringa nom con la stringa nome, dove se uguale dovrebbe avvertire che tale nome è presente in agenda!!!!!!!

questo è il listato:

.......inizializzo le variabili
char nome[20];
char info[20];
char tele[20];

char nom[20];
char inf[20];
char tel[20];
----------------------

//Routine di lettura input
cout<<"Registrare i dati ? s/n ";
cin>>ch;

if (ch=='n') {

} else {
fstream fi;
fi.open("AGENDA.txt",ios::in);

while (!fi.eof()){
fi>>nom;

if (nome==nom) {//...... quì non entra mai, ma col debug le variabili
//sono identiche, tipo Nome=pippo e num=pippo estratto dalla lettura
//del file

cout<<"Nome presente in AGENDA....";
fi.close();
getch();
DisplayMenu();
return;
}
fi>>inf;
fi>>tel;



}

fi.close();

fstream fo;
fo.open("AGENDA.txt",ios::app);

fo<<nome<<endl;
fo<<info<<endl;
fo<<tele<<endl;
}

//getch(); //waits for a key to be entered
fine:
DisplayMenu();
}

cionci
15-10-2003, 07:39
Semplicemente perchè il confronto fra stringhe non si fa così...

nome==nom significia confrontare l'indirizzo a cui è allocato il primo carattere di ogni stringa...

strcmp fa il confronto fra stringhe...

if(strcmp(nome, nom)==0)