Berechnung einer ISBN Nummer (substr?!?)



  • Hallo Gemeinde.
    Ich muss ein Programm zur Berechnung einer ISBN Nummer schreiben. In PHP ist das kein Problem, das sind 5 Minuten. Ich bin aber in C++ nicht so fit.
    Ich weiß wie ich es machen muss, aber mir fehlen Befehle und die Erfahrung.

    Zur Aufgabe:
    Es soll eine ISBN überprüft werden ob diese existiert. Dies soll mit 2 Funktionen geschehen. Die Funktion gew_quersumme() berechnet die Quersumme der der Einzelnen Stelle und wichtet diese von 1 bis 9.
    Die 2. Funktion schaut ob die letzte Stelle der ISBN Nummer ein X ist und addiert diese zur Quersumme der ersten Funktion. Dann wird dieser Wert mit Modulo 11 berechnet, wenn 0 raus kommt stimmt die Nummer.

    Das Problem ist, dass ich mit der Funktion substr() bei C++ nicht zurecht komme. Das Programm soll auch mit den beiden Funktionen geschrieben werden und auch nicht OOP.

    #include <iostream>
    #include <string>
    using namespace std;
    int gew_quersumme(int zahl[]){
        int i,tmp[0];
    	for(i=0 ; i <= 8 ; i++){
    		tmp[0] = tmp[0] + ( zahl[i] * ( i + 1) );
    	}
    	return tmp[0];
    }
    bool test_isbn(int zahl[], char letzte){
    
        int tmp[0],ergebnis;
        tmp[0] = gew_quersumme(zahl);
    
    	if(letzte == 'x' || letzte == 'X'){
    		letzte = '10';
    	}
    	tmp[0] = tmp[0] + ( letzte * 10 );
    	ergebnis = tmp[0] % 11;
    
    	if(ergebnis == '0'){
    		return true;
    	}else{
    		return false;
    	}
    }
    int main(){
        char isbn;
    
        cout << "ISBN Nummer: ";
        cin >> isbn;
    
    }
    

    Ich bräuchte erstmal zum Verständnis einen Teilstring von "isbn". "isbn" ist 10 Zeichen lang. Ich brauche einen String der bei 0 beginnt und 9 Zeichen lang ist und einen zweiten String, der das letzte Zeichen enthält.
    Ich hab auch das Problem das immer die Fehlermeldung "invalid conversion from char to char" kam. Deswegen hab ich so viel mit Arrays gemacht.

    Hier der Link de Aufgabenstellung: http://www.tu-chemnitz.de/informatik/friz/Grundl-Inf/Beleg/texte/beleg206.html

    Ich danke euch schon mal.

    Patrick



  • Hi,

    hilft der Thread vielleicht weiter ?

    Gruß,

    Simon2.


Anmelden zum Antworten