Programma che controlla se due stringhe char sono uguali

di Anonimizzato25486 il
2 risposte
Necessito di un aiuto con un programma.
Quest'ultimo deve ricevere da input nome e cognome di alcuni studenti di una classe (tramite record). Successivamente deve far inserire la media dei voti che questi studenti hanno preso nel corso dell'anno. Ora arriva il problema. L'utente dovrà poi inserire il cognome corrispondente allo studente di cui vuole sapere la media totale dei voti ottenuti nell'anno scolastico. Il problema sta nel fatto che non riesca a creare un ciclo tale che mi permetta di controllare due stringhe in char (di cui una contenuta nel record).
La prima parte è perfettamente funzionante. Il problema persiste nella seconda dove, al controllo della equivalenza delle due stringhe, il programma smette di funzionare non ricavandone il nome selezionato (utilizzato come test solo per vedere se il ciclo funzionasse o meno).
Qualcuno sa dirmi come posso risolvere il problema?

Vi mostro qual'era l'idea del programma:

#include<cstdlib>
#include<iostream>

using namespace std;

main(){
	struct Registro{
		char Nome[50];
		char Cognome[50];
		int ita;
		int sto;
		int filo;
		int fis;
	    int sci;
		int mat;
		int ing;
		int inf;
		int rel;
		int mot;
		int art;
	};
	char CR[50];
	float somma,media;
	char T[50];
	int x=0;
	Registro R[2];
	
	for(int i=0;i<2;i++){
		cout<<endl<<"Inserire il nome del "<<i+1<<"^ alunno: ";
		cin>>R[i].Nome;
		cout<<"Bene, ora inserire il cognome: ";
		cin>>R[i].Cognome;
		cout<<"Ora bisogna inserire le medie dei voti delle materie richieste:"<<endl;
		cout<<"Italiano: ";
		cin>>R[i].ita;
		cout<<"Storia: ";
		cin>>R[i].sto;
		cout<<"Filosofia: ";
		cin>>R[i].filo;
		cout<<"Fisica: ";
		cin>>R[i].fis;
	}
	
	cout<<endl<<"Inserire il cognome dello studente di cui si vuole sapere la media totale: ";
	cin>>CR[50];
	cout<<endl<<"Ricerca in corso.."<<endl;
	
	for(int i=0;i<2;i++){
		do{
			if(CR[x]==R[i].Cognome[x]){
				T[x]=CR[x];
				x++;
			}else{
				i++;
			}
		}while(x<10);
	}
	
	cout<<""<<T[50];
}

2 Risposte

  • Esistono funzioni apposite per il confronto come

    strcmp

    Usala
  • oregon ha scritto:


    Esistono funzioni apposite per il confronto come

    strcmp

    Usala
    Grazie mille. Il programma funziona anche se, a mio malgrado, ho dovuto studiarmi da me come utilizzare questa funzione in quanto non ancora affrontata a scuola. Sei stato gentilissimo
Devi accedere o registrarti per scrivere nel forum
2 risposte