error C2664: 'strcmp': Konvertierung des Parameters 2 von 'const char' in 'const char *' nicht möglich



  • Kann mir jemand helfen den Fehler zu beseitigen?
    hab schon alles versucht...

    struct element{char *begriff; int seite1; int seite2; int seite3;};
    bool suche_genau(element *verzeichnis,const char* suchbegriff,int anz)
    {
    	if(strcmp(verzeichnis->begriff,*suchbegriff)==0){
    		anz=1;
    		return true;
    	}
    	else
    		return false;
    }
    int main()
    {	
    	element stichwortverzeichnis[1000]=
    	{{"Atom",1,45,387},{"Betastrahlung",2,48,793},{"Gammastrahlung",17,49,845}};
    	int anzahl=0;
    	const char* suchbegriff="Atom";
    
    	if(suche_genau(element* ,const char* ,int)==true)
    		cout<<"Treffer in Seite "<<stichwortverzeichnis.seite1<<stichwortverzeichnis.seite2<<stichwortverzeichnis.seite3<<endl;
    	else 
    		cout<<"kein Treffer"<<endl;
    	return 0;
    }
    


  • Ohne deinen Quellcode ganz zu lesen, hier ein Tipp der dir dein Leben erleichtern könnte:
    std::string.



  • Der Fehler sagt doch eigentlich was zu tun. Statt das erste Element der Zeichenkette, möchte er einen Pointer auf die Zeichenkette.

    struct element{char *begriff; int seite1; int seite2; int seite3;};
    bool suche_genau(element *verzeichnis,const char* suchbegriff,int & anz)
    {
        if(strcmp(verzeichnis->begriff,suchbegriff)==0){
            anz=1;
            return true;
        }
        else
            return false;
    }
    int main()
    {   
        element stichwortverzeichnis[1000]=
        {{"Atom",1,45,387},{"Betastrahlung",2,48,793},{"Gammastrahlung",17,49,845}};
        int anzahl=0;
        const char* suchbegriff="Atom";
    
        if(suche_genau(stichwortverzeichnis[0] ,suchbegriff ,anzahl)==true)
            cout<<"Treffer in Seite "<<stichwortverzeichnis.seite1<<stichwortverzeichnis.seite2<<stichwortverzeichnis.seite3<<endl;
        else
            cout<<"kein Treffer"<<endl;
        return 0;
    }
    

    Da waren aber noch viel mehr Fehler drin, bin mir nicht sicher ob alle raus sind. Du solltest dir aber auf jeden Fall mal gedanken über die Änderungen machen.



  • danke:)
    hab jetzt nur noch ein kleineres Problem:
    error C2228: Links von ".seite1" muss sich eine Klasse/Struktur/Union befinden.

    element ist doch meine Struktur



  • Vielleicht solltest du noch angeben, auf welches Element des Arrays du dich beziehst, wenn du auf den Member seite1 zugreifen willst.



  • hab einen -> draus gemacht
    jetzt läuft das Programm
    vielen dank jedenfalls dass ihr euch mein Programm angeschaut habt!!



  • forever21 schrieb:

    danke:)
    hab jetzt nur noch ein kleineres Problem:
    error C2228: Links von ".seite1" muss sich eine Klasse/Struktur/Union befinden.

    element ist doch meine Struktur

    Ist mir beim Lesen vorhin auch aufgefallen, konnte aber den Beitrag nicht mehr ändern, sorry.
    DU hättest statt den Pfeil lieber ein [0] vor den Punkt schreiben sollen.

    Ausserdem rate ich dir dringend zu überlegen was an deiner Version falsch war.


Anmelden zum Antworten