Gibt es eine schnelle Möglichkeit, die Anzahl der aufeinanderfolgenden Nullbytes ab einem bestimmten (char *) Zeiger in C zu zählen? Ich verwende derzeit eine Tight-Loop, die gut funktioniert und schnell genug ist, aber die String-Funktionen von libc/gcc sind in der Regel noch schneller.Wie zähle ich aufeinanderfolgende null ( 0) Bytes in C?
Ich bin auf der Suche nach etwas ähnlich strspn
, buf strspn (natürlich) stoppt bei der ersten Null-Byte und ist daher für diese Aufgabe nutzlos. Ich denke, Sie könnten auch sagen, ich bin auf der Suche nach der Umkehrung von strlen
, die Anzahl der Bytes zurückgibt, die nicht null sind.
Wenn das NUL-Byte nicht das Ende der Zeichenfolge ist, woher wissen Sie dann, wo die Zeichenfolge endet? – delnan
Wenn es schnell genug ist ... warum Botter ?! – Anthales
Es gibt wahrscheinlich einige handgeschriebene Assembler in der C-Bibliothek Implementierung. Sie können bis zum nächsten ausgerichteten Zeiger vorrücken und beginnen, ganzzahlige Werte zu vergleichen. –