Zahlen in Strings=>Vergleich aber ohne atoi
-
Ich würde ja einen Benchmark dafür zusammenstricken, aber ich weiß nicht, um welche mobile Steinzeitplattform es sich handelt, und anscheinend ist strspn da eh nicht vorhanden.
Generell aber sage ich Folgendes: String-Funktionen aus der Standardbibliothek sind ab einer gewissen Stringlänge in aller Regel schneller als handgestrickte Schleifen. Das liegt daran, dass sie auf die betreffende Plattform handoptimiert sind (SSE ist da sehr beliebt) und teilweise Tricks benutzen, auf die man nicht so leicht kommt oder die einem in Standard-C nicht zur Verfügung stehen (oder beides). GNUs strlen beispielsweise benutzt eine Heuristik, die ausnutzt, dass Zeichen in Strings, die strlen übergeben werden, meistens < 128 sind in Verbindung mit speziellem Wissen über das Speichermodell des Betriebssystems, um jeweils 4 bzw. 8 Byte auf einmal zu erschlagen. memcpy verarbeitet, wo möglich, ganze Speicherseiten auf einmal.
Meine Herangehensweise ist dementsprechend, mit Standard-Funktionen anzufangen und erst, wenn mir der Profiler sagt, dass ich da ein Problem habe, mit Handoptimierungen anzufangen. Diese laufen dann aber auch nicht auf einfache while-Schleifen hinaus.