Seltsames Verhalten von char (char != string dachte ich)



  • @X
    Die Aussage dass ein Array in C++ immer gleich wie ein konstanter Zeiger behandelt wird ist einfach nur Schwachsinn. Da kannst du dich noch sehr aufplustern und blöde "ja aber" Antworten schreiben. Ändert daran nix.

    Alleine die sizeof -Geschichte und die Möglichkeit Zeiger bzw. Referenzen auf Arrays (inklusive Grössenangabe!) zu verwenden zeigt das ganz deutlich.

    Was einem Anfänger hilft und was nicht ist dann wieder ein ganz anderes Thema. Im Zweifelsfall aber auch nicht die sinnfreie Unwahrheit.



  • @Arcoth danke für deine Definition!

    Bin sehr überrascht das hier so eine Diskussion entstanden ist.
    Meiner steits kann ich sagen das meine Frage beantwortet ist.

    meiner meinung nach closed, lese aber weiter die diskussion 🙂

    @X
    naja so ein blutiger Anfänger bin ich dann doch nicht würde ich jetzt mal von mir behaupten, ein normaler Anfänger, eigentlich verstehe ich schon was ein Poiner ist (seine Vorteile)und was ein Datentype wie Int oder Double...
    Wie man sieht Pointer 😉
    Kleiner Codeausschnitt von den Hausaufgaben

    int quersummenrechner(string *spnt, int *ipnt) 
    {	
    
    	int n = *ipnt;
    	return aufrufderwerte(spnt,n);
    }
    
    int  main()
    
    {
    	string sKBI;
    	int stringsize;
    	while (true)
    	{
    	stringsize = input(&sKBI);
    	cout << "Das Passwortes: " << sKBI << endl;
    	cout << "Mit " << stringsize << " Zeichen hat die Quersumme: " << quersummenrechner(&sKBI, &stringsize) << endl;
    	}
    	return 0;
    }
    

  • Mod

    Dafür, dass du angeblich weißt, was ein Zeiger ist, benutzt du ganz schön viele und auf komische Art und Weise. Zeiger auf String? 😮

    Daumenregeln für Übergabe von Objekte an Funktionen:

    Soll das Objekt über den Zeiger verändert werden dürfen? Falls nein: Zeiger auf const benutzen. Sieht mir so aus, als wäre das hier der Fall.

    Soll der Zeiger NULL sein dürfen? Falls nein: Referenz statt Zeiger benutzen (bzw. Referenz auf const). Sieht mir so aus, als wäre dies ebenfalls der Fall.

    Gibt es überhaupt einen Grund für eine Indirektion? Falls nein: Keine Referenz benutzen. Sieht mir so aus, als wäre das zumindest beim int der Fall.

    Die letzte Regel ist die weicheste, die anderen beiden sollte man aber stets beachten.



  • Rarebit schrieb:

    Kleiner Codeausschnitt von den Hausaufgaben

    int quersummenrechner(string *spnt, int *ipnt) 
    {	
    
    	int n = *ipnt;
    	return aufrufderwerte(spnt,n);
    }
    
    int  main()
    
    {
    	string sKBI;
    	int stringsize;
    	while (true)
    	{
    	stringsize = input(&sKBI);
    	cout << "Das Passwortes: " << sKBI << endl;
    	cout << "Mit " << stringsize << " Zeichen hat die Quersumme: " << quersummenrechner(&sKBI, &stringsize) << endl;
    	}
    	return 0;
    }
    

    Ich hoffe, Du lässt Deinem Kommilitonen ein wenig Platz für eigene Lösungen.
    Deine Strategie und deren Implementierung sind mindestens "ungewöhnlich". SeppJ hat ja schon was dazu geschrieben...



  • Rarebit schrieb:

    @Arcoth danke für deine Definition!

    Bin sehr überrascht das hier so eine Diskussion entstanden ist.
    Meiner steits kann ich sagen das meine Frage beantwortet ist.

    meiner meinung nach closed, lese aber weiter die diskussion 🙂

    @X
    naja so ein blutiger Anfänger bin ich dann doch nicht würde ich jetzt mal von mir behaupten, ein normaler Anfänger, eigentlich verstehe ich schon was ein Poiner ist (seine Vorteile)und was ein Datentype wie Int oder Double...
    Wie man sieht Pointer 😉
    Kleiner Codeausschnitt von den Hausaufgaben

    int quersummenrechner(string *spnt, int *ipnt)
    /*
     Wofür die Zeiger?
    
     Was du machen kannst ist eine Referenz für string zu nutzen:
     const string& spnt
    
     Dadurch muss das Objekt nicht kopiert werden. Ist aber optional.
     Der Zeiger für ipnt ist absolut nicht notwendig.
    */
    {	
    
    	int n = *ipnt; 
    /*
     Warum dieser Umweg über das n?
    
     Stattdessen:
     return aufrufderwerte(spnt, *ipnt);
    
     Wobei man hier sieht, dass die Funktion insgesamt überflüsig ist, da sie eh nur durchreicht.
    */
    	return aufrufderwerte(spnt,n);
    }
    
    int  main()
    
    {
    	string sKBI;
    	int stringsize;
    	while (true)
    	{
    /*
     Nimm eine non-const Referenz für input.
    */
    	stringsize = input(&sKBI);
    	cout << "Das Passwortes: " << sKBI << endl;
    	cout << "Mit " << stringsize << " Zeichen hat die Quersumme: " << quersummenrechner(&sKBI, &stringsize) << endl;
    	}
    	return 0;
    }
    

  • Mod

    Soll der Zeiger NULL sein dürfen? Falls nein: Referenz statt Zeiger benutzen (bzw. Referenz auf const). Sieht mir so aus, als wäre dies ebenfalls der Fall.

    Vorsicht. Es gibt Religionen die dem GSG folgen.



  • GSG?



  • Weiß schon, daß ich jetzt wieder einen auf den Deckel krieg.

    char eingabe[100];
    	cin >> eingabe;
    	int qs = 0;
    	for( int i = 0; eingabe[i]; qs += eingabe[i++] - '0' );
    	cout << qs;
    

    Ich weiß auch, daß das keine Antwort auf deine Fragen zur Funktion von pointers und arrays ist.

    Eingabe: 1003
    Ausgabe trotzdem: 4

    Erklärung irgendjemand? Wird die '\0' automatisch vor '\n' angehängt?


  • Mod

    EOP schrieb:

    Eingabe: 1003
    Ausgabe trotzdem: 4

    Was hättest du denn sonst erwartet?

    Erklärung irgendjemand? Wird die '\0' automatisch vor '\n' angehängt?

    😕 Von welchem \n redest du?



  • Hab's auch so schon nach ein bißchen Überlegen kapiert.
    Das '\n' war gemeint wenn ich âm Schluß auf [ENTER] draufhau.

    SeppJ - der Mann, der niemals schläft. Bist du ein Yogi oder sowaws? Es ist 3:58. Kein normaler Mensch ist um die Zeit wach.

    [quote="SeppJ"]

    EOP schrieb:

    Eingabe: 1003
    Ausgabe trotzdem: 4

    Was hättest du denn sonst erwartet?[quote]Das es nach der 0 abbricht.

    EDIT:
    War auch Quatsch. Bin aber um 4:00 nicht mehr so ganz klar im Kopf.


  • Mod

    EOP schrieb:

    Hab's auch so schon nach ein bißchen Überlegen kapiert.
    Das '\n' war gemeint wenn ich âm Schluß auf [ENTER] draufhau.

    Und wie of hast du schon erlebt, dass der Operator>> irgendeine Art von Whitespace einliest?

    Das es nach der 0 abbricht.

    EDIT:
    War auch Quatsch.

    🙂



  • SeppJ schrieb:

    Und wie of hast du schon erlebt, dass der Operator>> irgendeine Art von Whitespace einliest?

    Ich mach nur noch so wenig in C++. Meistens nur noch für Q+D. Bin auch nicht der weise Theoretiker.

    Außerdem habe ich gewaltige Probleme (rl + gesundheitlich) - bremst dein Denkvermögen gewaltig wenn du täglich 3 Std. ununterbrochen Nasenbluten hast und dazu dein Arm mehr oder weniger lahm ist + paar andere Sachen.

    EDIT:
    Dazu war ich noch bis 2:00 in der Kneipe. Was das Denken auch nicht fördert. 😉


  • Mod

    Herrje, so fing das bei unserem Hund auch an...



  • SeppJ schrieb:

    Herrje, so fing das bei unserem Hund auch an...

    Hab heute ein sterbendes Eichhönchen gesehen. Lag auf dem Rücken und hat mich hin und wieder angeblinzelt.
    Hat mir Angst gemacht.

    Mein vorheriger post war übrigens ausnahmsweise nicht als joke gemeint.

    EDIT:
    Euer Hund geht bis spät nachts in Kneipen?


  • Mod

    EOP schrieb:

    SeppJ schrieb:

    Herrje, so fing das bei unserem Hund auch an...

    Hab heute ein sterbendes Eichhönchen gesehen. Lag auf dem Rücken und hat mich hin und wieder angeblinzelt.
    Hat mir Angst gemacht.

    Ich glaube, dir täte eine Auszeit mal ganz gut.



  • Gab's in dem Forum schon immer so kaputte Menschen bzw Leute, die einen solchen hier projizieren?

    Oder ist das 201x Phänomen?

    Ist ja schlimm.



  • Arcoth schrieb:

    Ich glaube, dir täte eine Auszeit mal ganz gut.

    Da magst du Recht haben.

    Auf Uff, der nicht mal einen vernünftigen Satz zustande kriegt, gehe ich erst gar nicht ein.



  • Auf Uff, der nicht mal einen vernünftigen Satz zustande kriegt, gehe ich erst gar nicht ein.

    Richtig so, nutz die Zeit lieber zum saufen, damit auch deine letzten Gehirnzellen dran glauben dürfen 🙂



  • Man sieht ja, wie viel dir deine tolle Rechtschreibung und Grammatik bringt.

    Manche Menschen investieren die Mühe lieber in andere Aspekte des Lebens. Und wie du selber zu entdecken beginnst wäre es auch für dich an der Zeit, selbiges zu tun.

    Scheinst wohl irgendeine ernsthafte Erkrankung (diagnostiziert?!) zu haben, benebelst dich aber nichtsdestotrotz mit genügend Alkohol, um so einen Stuss hier rein zuschreiben.

    Wenn ich mich Recht entsinne gibt es in NADRW einen Thread, der wohl für dich interessant wäre. Geht da auf jeden Fall AFAIK um Mode-Depressionen. Die sind bei deinem Paket bestimmt auch dabei?


  • Mod

    hustbaer schrieb:

    GSG?

    Der Google Style Guide. Schau dort mal bei Referenzen rein.


Anmelden zum Antworten