Gast
#411991
Hallo, gibt es in C eine fertige Funktion führende Leerzeichen aus einem String zu entfernen?
|
Anzeige
|
führende Leerzeichen aus String entfernen
Gast
#411991
Hallo, gibt es in C eine fertige Funktion führende Leerzeichen aus einem String zu entfernen? Nein. Ist aber gar nicht so schwer zu programmieren. Das Prinzip: Das erste Nicht-Leerzeichen Zeichen im String suchen. Danach alle Zeichen dahinter in einer Schleife nach vorne kopieren.
Gast
#411993
Danke. Das mit dem selbst Programmieren ist auch nicht das Problem. Ich wollte nur nicht das Rat neu erfinden wenn es in irgend einer AVR-lib schon drin ist ;o) Nö, ist so nicht da. Meist genügt es ja, sich mit einem Pointer vorzuarbeiten und den Anfang des Strings einfach zu ignorieren. Damit entfällt dann sogar noch der Schritt des Kopierens. Yep. Das Hauptproblem warum man solche Dinge nicht in die Library mit aufnimmt liegt wohl darin, dass jeder eine andere Vorstellung davon hat, was den als Leerzeichen gewertet wird. Ist das nur das eigentliche Leerzeichen oder gehört der Tabulator auch dazu. Was ist mit einem Zeilenvorschub am Beginn? Soll der ignoriert werden oder nicht? Dafür gibt es ja in C den netten Begriff "whitespace" ... und das Macro/die Funktion isspace.
Gast
#411997
Zuerst dachte ich ja dieser Thread wäre sinnlos da ich das nein zu der Frage nach einer fertigen Funktion schon erwartet habe. Nun nach den Bemerkungen im Bezug auf Tabs, Zeilenvorschub (Whitspace) bin ich froh die Frage gestellt zu haben, da ich genau diese Zeichen ja auch ausblenden muss. Nochmals Danke. Hier die Variante ohne Kopieren:
Da frag ich mich doch:
Was liefert eigentlich isspace für '\0'?
Könnte man das abkürzen zu
while( isspace(*s++) )
;
Hab ein bischen gegoogelt: müsste eigentlich klappen > Was liefert eigentlich isspace für '\0'?
0, gehört nicht zu den white space characters. Ja, damit
könnte man diesen Test wirklich noch weglassen.
Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|