String länge



  • Hi ich soll die länge eines gegebenen strings herrausfinden OHNE strlen() zu verwenden.
    Das überfordert mich aber grad gnadenlos kann mir jemand nen ansatz oder nen tipp geben wie man das durchführen könnte?



  • strlen zählt einfach die Zeichen bis zur 0 ('\0'). Das kannst du einfach auch so machen. Voraussetzung ist natürlich, dass der übergebene String auch nullterminiert ist, aber das ist bei strlen genauso.



  • also ne for schleife mit i--?
    also was in dir richtung (i=100;i!=0;i--)? aber wie zähl ich dann die ausgabe?



  • Eher ne while-Schleife mit nem Zeiger, den du über den String wandern lässt (solange das aktuelle Zeichen nicht 0 ist, erhöhe den Zeichenzähler um eins).



  • So macht man das normalerweise:

    size_t strlen(const char *str)
    {
    	const char *p = str;
    	while (*p)
    	{
    		++p;
    	}
    	return size_t(p - str);
    }
    


  • TyRoXx schrieb:

    So macht man das normalerweise:

    size_t strlen(const char *str)
    {
    	const char *p = str;
    	while (*p)
    	{
    		++p;
    	}
    	return size_t(p - str);
    }
    

    Musst du ihm die Lösung präsentieren? Das ist doch eine Aufgabe, die er lösen soll, und meine Tipps hätten ausgereicht... 🙄



  • Das mit den Pointern habe ich eh noch nicht gemacht muss mich da erst reinarbeiten.
    Aber danke an euch beide.



  • TyRoXx schrieb:

    So macht man das normalerweise:

    ...
    return size_t(p - str);
    

    aber size_t ist keine funktion. besser so: return (size_t)(p - str);
    🙂


Log in to reply