012
01.04.2003, 15:07 Uhr
BeS
|
Zitat: |
~0xdeadbeef postete Zwei Dinge: Vorher die Länge abzuprüfen frißt immer noch viel zu viel Rechenzeit.
|
Naja, "viel zu viel" halte ich für etwas übertrieben, so viel Rechenzeit braucht srlen auch wieder nicht.
Zitat: |
C++: |
for(int i = 0; str[ i ] != ch && str[ i ]; ++i);
|
ist ungefähr doppelt so schnell. Zum zweiten läßt sich gerade in diesem Fall die Schleife wunderbar in Anfangszustand, Endzustand und Abbruchbedingung unterteilen.
|
ja, diese Lösung finde ich auch in Ordnung, ist ja im Prinzip eine while-Schleife als for-Schleife verkleidet Meine ursprüngliche Antwort hat sich ja auf die Lösung von ~dirweis bezogen welcher die for-schleife durch den ganzen string laufen lies und dann mit brake vorzeitig ausgestiegen ist.
Vielleicht liegt es auch daran, dass ich nicht in C angefangen habe zu programmieren. In den meisten Programmiersprachen sieht imho aber eine for-Schleife so aus (pseudo-code): for i in x..y do ... od;
das ist für mich halt das klasische Einsatzgebiet für for-schleifen. Sobald das Schema nicht passt, sprich ich bei jedem Schleifendurchlauf auf den Abbruch stossen kann (also den Abbruch nicht wirklich vorhersagen kann) ist imho die while-Schleife das geeignete Mittel.
Durch die "erweiterte for-Schleife" in C, welche ja schon fast wie eine while-Schleife ist, gehen unter C natürlich auch solche Lösungen wie deine und sehen sicher aus kompakter aus.
Prinzipiell bin ich aber virtuals Meinung:
Zitat: |
"Es ist schlechter Programmierstil, das Rad jedesmal neu erfinden zu wollen". Eine Aussage, die ich voll unterschreiben würde und zutrifft, wenn man strchr vermeidet.
|
-- If art interprets our dreams, the computer execute them in the guise of programs! Dieser Post wurde am 01.04.2003 um 15:09 Uhr von BeS editiert. |