Suche nach Teilzeichenkette des Strings



  • Hallo Leute,

    ich habe eine Medienliste mit Filmen und muss eine Funktion schreiben. Wenn man nach dem Titel des Films sucht, müsste man dann nicht den ganzen Namen des Films angeben, z.B. Herr der Ringe...sondern es muss mir schon nach dem Eingabe von "Herr" auf der Console alle Filme ausgegeben werden, in dem das "Herr" vorkommt...
    Ich weiß, dass man sich der methoden open(), size() bedienen kann, aber ich weiß ncih wie ich es umsetze...

    void mediumLeasing(Medien_var myMedium) {
    
    	int auswahl = 0;
    
    	cout << endl;
    
    	while (auswahl < 3) {
    
    		cout << "Wie moechten Sie ausleihen?" << endl;
    
    		cout << "1 - per Titel" << endl;
    
    		cout << "2 - per Mediennummer" << endl;
    
    		cout << "3 - gar nicht" << endl;
    
    		cin >> auswahl;
    
    		if (auswahl == 1) {
    
    			string titel;
    
    			bool ergebnis;
    
    			cout << "Bitte geben Sie einen Titel ein: " << flush;
    
    			cin.clear();
    
    			cin.sync();
    
    			while (cin.get() != '\n');
    
    			getline(cin,titel);
    
    			ergebnis = myMedium->leasingMedium(titel.c_str());
    
    			if(ergebnis) {
    
    cout << "Der Titel " << titel << " wurde ausgeliehen." << endl;
    
    			}
    
    			else {
    
    cout << "Der Titel " << titel << " ist entweder nicht vorraetig" << flush;
    
    cout <<", oder nicht in unserer Liste." << endl;
    
    			}
    
    		}
    
    		else if (auswahl == 2) {
    
    			CORBA::ULong nummer;
    
    			bool ergebnis;
    
    cout << "Bitte geben Sie die Mediennummer ein: " << flush;
    
    			cin >> nummer;
    
    			ergebnis = myMedium->mediumLeasingNummer(nummer);
    
    			if(ergebnis) {
    
    cout << "Der Titel mit der Nummer " << nummer << " wurde ausgeliehen." << endl;
    
    			}
    
    			else {
    
    cout << "Der Titel mit der Nummer " << nummer << " ist entweder " << flush;
    
    cout << "nicht vorraetig, oder nicht in unserer Liste." << endl;
    
    			}
    
    		}
    
    		cout << endl;
    
    	}
    
    }
    

    Freue mich über jede Hilfe!!! 🙂 🙂 🙂

    /edit pumuckl: cpp-Tags spendiert. Bitte künftig selber machen!



  • void mediumLeasing(Medien_var myMedium) {
    
    	int auswahl = 0;
    	cout << endl;
    	while (auswahl < 3) {
    
    		cout << "Wie moechten Sie ausleihen?" << endl;
    		cout << "1 - per Titel" << endl;
    		cout << "2 - per Mediennummer" << endl;
    		cout << "3 - gar nicht" << endl;
    
    		cin >> auswahl;
    
    		if (auswahl == 1) {
    
    			string titel;
    			bool ergebnis;
    
    			cout << "Bitte geben Sie einen Titel ein: " << flush;
    
    			cin.clear();
    			cin.sync();
    
    			while (cin.get() != '\n');
    
    			getline(cin,titel);
    
    			ergebnis = myMedium->leasingMedium(titel.c_str());
    
    			if(ergebnis) {
    				cout << "Der Titel " << titel << " wurde ausgeliehen." << endl;
    			}
    			else {
    				cout << "Der Titel " << titel << " ist entweder nicht vorraetig" << flush;
    				cout <<", oder nicht in unserer Liste." << endl;
    			}
    		}
    
    		else if (auswahl == 2) {
    
    			CORBA::ULong nummer;
    			bool ergebnis;
    
    			cout << "Bitte geben Sie die Mediennummer ein: " << flush;
    			cin >> nummer;
    
    			ergebnis = myMedium->mediumLeasingNummer(nummer);
    
    			if(ergebnis) {
    				cout << "Der Titel mit der Nummer " << nummer << " wurde ausgeliehen." << endl;
    			}
    			else {
    				cout << "Der Titel mit der Nummer " << nummer << " ist entweder " << flush;
    				cout << "nicht vorraetig, oder nicht in unserer Liste." << endl;
    			}
    		}
    
    		cout << endl;
    	}
    }
    


  • CORBA::Boolean Medien_impl::leasingMedium(const char* titel){
    
    	cout << "Der Titel: " << titel << " soll ausgeliehen werden." << endl;
    
    	unsigned long i;
    
    	unsigned long anz;
    
    	for (i = 0 ; i < this->valueMedien ; i++) {
    
    		if (!strcmp(this->allMedien->allMedien[i].title,titel)) {
    
    			char test = allMedien->allMedien[i].title.sizeof();
    
    			//allMedien ist Zeiger auf MedienList
    
    			anz = this->allMedien->allMedien[i].count;
    
    			if (anz > 0) {
    
    				this->allMedien->allMedien[i].count = anz-1;
    
    				cout << "Titel ist vorraetig und wird verschickt. " << endl;
    
    				return true;			
    
    			}
    
    			else {
    
    				cout << "Der Titel ist leider nicht vorraetig. " << endl;
    
    				return false;
    
    			}
    
    	}
    
    		}
    
    			if(i=0; i < sizeof(ergebnis);i++){
    				for(int )
    			cout<< "Titellänge: "<< titel << endl;
    			}
    //char test = ergebnis;
    
    //cout<< "Titellänge"<< test <<endl;
    
    /*else {
    
    if (!strcmp(this->allMedien->allMedien[i].title.find(),titel)){
    
    }
    
    for( int i=0; i < this->allMedien->allMedien[i].title.sizeof(); i++){
    
    }*/
    
    	cout << "Der Titel ist nicht in unserem Bestand" << endl;
    
    	return false;
    
    }
    

    /edit pumuckl: cpp-Tags spendiert. Bitte künftig selber machen!



  • Schleife über einen std::vectorstd::string mit allen Filmtiteln + http://www.cplusplus.com/reference/string/string/find/

    Bitte C++-Tags verwenden!



  • Ach, Menno! Da bei geht das viel Schöner mit c++-strings

    edit: zu spääääääät


Anmelden zum Antworten