Hallo,
ich brauche die Funktion substr oder eine ähnliche, um einen String auf
die ersten x Zeichen zu limitieren.
Leider konnte ich nicht herausbekommen, welche library ich einbinden
muss oder wo ich das (auch in Zukunft) herausfinde?
danke,
dartrax
Weil sämtliche Strings zu lang sind, und daher die Nullen nicht mit
aufgenommen werden. Außerdem sind die "\0" auch überflüssig, da der
Compiler ein String-Literal schon von sich aus mit einer Null
terminiert.
PS: Compiler-Warnungen sollte man nicht ignorieren, insbesondere wenn
irgendetwas nicht funktioniert.
Das dachte ich auch, dass der Compiler das selbst macht. Deswegen
wundert's mich, dass ich trotzdem alle Strings auf's Display kriege.
Wenn das nicht "normal" ist, hab ich aber vielleicht auch einen anderen
Fehler im Code.
dartrax
Nein, der Fehler ist, dass die Strings zu lang sind!
"Montag \0":
Montag + 3 Leerzeichen + 2 Nullen = 11 Zeichen
Da von diesen 11 Zeichen aber nur 9 reinpassen, werden die beiden Nullen
vom Anfang des nächsten Strings überschrieben, so dass nur die Nullen
ganz am Ende des 2-dimensionalen Arrays übrig bleiben.
... dartrax ... wrote:
> Das dachte ich auch, dass der Compiler das selbst macht. Deswegen> wundert's mich, dass ich trotzdem alle Strings auf's Display kriege.
Zähl noch mal deine Zeichen nach
unsigned char day[7][9] = {"Montag ",
123456789
Du verbrauchst für die sichtbaren Stellen 9 Zeichen. Die Strings
müssen aber 10 (!) Zeichen lang sein, damit das abschließende
'\0' Zeichen noch reinpasst!
Ja, vielen Dank, alle guten Dinge sind drei ;-)
Ich dachte nur, weil der Compiler doch von sich aus die Strings
terminiert, würde ich das überhaupt nicht brauchen. Warum ich es doch
brauche, ist mir nicht ganz klar.
Mit
... dartrax ... wrote:
> Ich dachte nur, weil der Compiler doch von sich aus die Strings> terminiert, würde ich das überhaupt nicht brauchen. Warum ich es doch> brauche, ist mir nicht ganz klar.
Ob der Compiler es terminiert, oder man selber, spielt doch keine Rolle.
Die Terminierung muss auf jeden Fall auch mit in den Speicher, also muss
man dafür auch den entsprechenden Platz vorsehen.
> Mit
Aaaahh....
Jetzt hab' ich es begriffen.
Und was yalu geschrieben hat, funktioniert auch, das habe ich nämlich
auch an anderer Stelle gebraucht.
Danke!
dartrax