String inkrementieren



  • Na wenn das keine FAQ wert ist. 🙄



  • CStoll schrieb:

    Das könntest du auch in eine Schleife packen:

    for(i=7;i>=0;++i)
      if(number[i]==0xFF)
        number[i]==0;
      else
      {
        ++number[i];
        break;
      }
    

    Müsste es aber nicht

    int i;	
    
    	for(i=7;i>=0;i--)
    	{
    		if(number[i]==0xFF)
    		{
    			number[i]=0;
    		}
    		else
    		{
    			number[i]++;
    			break;
    		}
    	}
    

    heißen?



  • Guenther:
    Mit dem Schleifenkopf (-- vs ++) dürftest Du Recht haben, der Rest ist allerdings identisch 😉



  • LordJaxom schrieb:

    Mit dem Schleifenkopf (-- vs ++) dürftest Du Recht haben, der Rest ist allerdings identisch 😉

    Was anderes habe ich auch nicht behauptet. Danke an alle.

    Günther :xmas1:



  • Guenther schrieb:

    Na wenn das keine FAQ wert ist. 🙄

    Wie meinst denn das?



  • TactX schrieb:

    Guenther schrieb:

    Na wenn das keine FAQ wert ist.

    Wie meinst denn das?

    Was? Das? 😮 Habe ich das geschrieben? 😕

    Nee, mal im Ernst. Ich dachte, so eine schöne Funktion um einen String zu erhöhen kann doch für alle diejenigen, die das gleiche Problem haben in die FAQs aufgenommen werden. Ich meine, wer hatte noch nicht das Problem, einen String zu erhöhen und wusste nicht wie?

    Blöde Idee? Hm. Stimmt wohl.

    Sanfte Grüße

    vom Günther :xmas2:



  • Naja, soviele Leute habe ich noch nicht gesehen, die ein char-Array als Ultra-Long-Integer mißbraucht haben 😉 Und die sind (meist) intelligent genug, sich da selber etwas zusammenzuspinnen.

    Normalerweise versteht man unter einem String auch eine Zeichenkette - und die muß man bestenfalls vergleichen, durchsuchen und umbauen, aber nur in seltenen Fällen "erhöhen".

    *grübelt* sollte ich vielleicht einen Artikel zum Thema "eigene Super-Int Klasse" in Angriff nehmen?



  • CStoll schrieb:

    Und die sind (meist) intelligent genug, sich da selber etwas zusammenzuspinnen.

    Toll, du hältst mich also für etwas blöd. Interessant.

    Weniger Erfahrung + Wunsch nach einfachen Lösungen = blöd?

    Günther



  • Guenther schrieb:

    CStoll schrieb:

    Und die sind (meist) intelligent genug, sich da selber etwas zusammenzuspinnen.

    Toll, du hältst mich also für etwas blöd. Interessant.

    Das nicht - nur zu ungeduldig, um selber länger nachzudenken 😉
    (dein Ansatz mit der geschachtelten if-Anweisung war schonmal nicht schlecht - und auf eine Schleife wärst du sicher auch noch gekommen (hoffe ich mal))



  • CStoll schrieb:

    nur zu ungeduldig, um selber länger nachzudenken 😉
    (dein Ansatz mit der geschachtelten if-Anweisung war schonmal nicht schlecht - und auf eine Schleife wärst du sicher auch noch gekommen (hoffe ich mal))

    Ich habe schlicht nicht gewusst, dass man ne for-Schleife mit nem break unterbrechen kann. Die Versuche mit Rekursion und anderen Schleifen, die ich hatte, waren erfolglos oder zu kompliziert, als dass irgendjemand sie ohne größeren Aufwand hätte nachvollziehen können.

    Danke trotzdem für deine Kritik.

    Günther



  • Guenther schrieb:

    Ich habe schlicht nicht gewusst, dass man ne for-Schleife mit nem break unterbrechen kann.

    Das gehört schon fast in die Rubrik "fehlendes Grundlagenwissen" - mit einem break kommst du aus JEDER Schleife raus 😉



  • CStoll schrieb:

    Das gehört schon fast in die Rubrik "fehlendes Grundlagenwissen"

    JETZT fühle ich mich schlecht. 😞



  • Guenther schrieb:

    CStoll schrieb:

    Das gehört schon fast in die Rubrik "fehlendes Grundlagenwissen"

    JETZT fühle ich mich schlecht. 😞

    Ärgere dich nicht, CStoll hat unrecht. Mit "break" kommt man nicht aus jeder Schleife raus.



  • @Guenther: Sorry, das war nicht beabsichtigt.

    Andromeda schrieb:

    Ärgere dich nicht, CStoll hat unrecht. Mit "break" kommt man nicht aus jeder Schleife raus.

    Kannst du das auch belegen? Sprich: Zeig mir eine Schleife, die du nicht per break verlassen kannst.



  • Ich denke er meint, dass man mit break nur aus der inneren Schleife rausspringen kann, nicht aber aus der äußeren. Wobei das auch eine sehr esoterische Auslegung der Sache wäre.



  • CStoll schrieb:

    Kannst du das auch belegen? Sprich: Zeig mir eine Schleife, die du nicht per break verlassen kannst.

    Eine Schleife ist per Definition die "wiederholte Ausführung eines Programmteils". In diesem Sinne kann diese Schleife

    int x = 10;
       loop:
          printf ("Hello\n");
          if (x-- != 0) goto loop;
    

    nicht mit "break" abgebrochen werden.
    🙂



  • Das ist auch keine Schleife im C- Sinn, sondern primitivstes goto-Gegurke (und gehört imho sowieso verboten). Schleifen in C sind for(), while() und do-while(). Punkt.



  • Andromeda schrieb:

    Eine Schleife ist per Definition die "wiederholte Ausführung eines Programmteils".

    Das ist deine Definition? Oder wessen? Egal, es ist _nicht_ die Definition des ANSI C Standards.



  • Hallo ihr beiden,

    CStoll schrieb:

    Das ist auch keine Schleife im C- Sinn, sondern primitivstes goto-Gegurke

    Nein, das ist IMHO legaler C Code.

    TactX schrieb:

    ...es ist _nicht_ die Definition des ANSI C Standards.

    Was eine Schleife ist oder nicht ist, unterliegt nicht der Zuständigkeit des ANSI C Standards. Außerdem schreibt der Standard nicht vor, daß die Konstruktion von Schleifen nur mit Hilfe der C-Kontrollstrukturen "for/while/do" erlaubt ist.



  • Andromeda schrieb:

    Hallo ihr beiden,

    CStoll schrieb:

    Das ist auch keine Schleife im C- Sinn, sondern primitivstes goto-Gegurke

    Nein, das ist IMHO legaler C Code.

    Auch legaler C Code kann "Gegurke" sein. Und mit deinem goto kannst du von mir aus in Assambler weitermachen - in vernünftig strukturierten C Programmen gibt es nur SEHHR wenige Situationen, wo man es benötigt.

    TactX schrieb:

    ...es ist _nicht_ die Definition des ANSI C Standards.

    Was eine Schleife ist oder nicht ist, unterliegt nicht der Zuständigkeit des ANSI C Standards. Außerdem schreibt der Standard nicht vor, daß die Konstruktion von Schleifen nur mit Hilfe der C-Kontrollstrukturen "for/while/do" erlaubt ist.

    Nein, aber break ist Bestandteil des ANSI C Standards - und bezieht sich deshalb auf die ANSI-Definition, was eine Schleife ist.


Anmelden zum Antworten