Gibt es eine Standard-C-Funktion ähnlich wie strtol, die ein char * und eine Länge für eine nicht-null-terminierte Zeichenkette benötigt?
Ich weiß, dass ich die Zeichenfolge in eine nullterminierte Region kopieren konnte, aber aus Effizienzgründen ist das unerwünscht.
Danke.
Wenn Sie das auf Effizienz drücken, können Sie wahrscheinlich die Zeit zum Schreiben und Debuggen Ihrer eigenen Zeit motivieren.
Aber: mach es einfach mit einer Kopie; Sie haben wahrscheinlich eine Obergrenze für die Länge der Zeichenfolge (eine Dezimalzahl, die in long
passt, hat eine strenge Obergrenze für die maximale Länge), sodass Sie einen statischen Puffer haben können. Dann profilieren Sie Ihre gesamte Anwendung und sehen Sie, ob das Kopieren / Konvertieren wirklich ein Flaschenhals ist. Wenn es wirklich ist, dann weißt du, dass du deine eigenen schreiben musst.
Hier ist ein grober (ungetesteter, browsergeschriebener) Startpunkt:
%Vor%