nicht darstellbare zeichen aus string entfernen
-
hallo,
wie kann man nicht darstellbare Zeiche wie z.b. \t \r\n aus einem string, der z.b. aus einer datei eingelesen wurde, entfernen?
bin über jede hilfe dankbar!grüße
-
-
void xx(char *s) { char *d; for (d = s; *s; s++) if (isprint(*s)) *d++ = *s; *d = 0; }
-
keksekekse schrieb:
void xx(char *s) { char *d; for (d = s; *s; s++) if (isprint(*s)) *d++ = *s; *d = 0; }
void xx (char *s) { int d; for (d=0; (s[d]=*s)!=0; s++) if (!isprint(*s)) d--; }
-
@kekse: Ja, so kann man sich auch den Speicher zerschießen
-
CStoll schrieb:
den Speicher zerschießen
Im alltäglichen Gebrauch kommen \t\r\n in Texten nicht allzu häufig vor (Extremfälle mal ausgeschlossen). Notfalls hilft Umbetten per realloc.
Letzte Frage in unserer Physik-Abschlußprüfung: Warum verbraucht eine Türklingel so wenig Strom? Ich hab rumgerechnet und weiß nicht mehr, ob ich in die Nähe der Lösung gekommen bin. Der Grund ist nämlich: Weil sie nur kurze Zeit gedrückt wird (also klingelt).
-
@ten: Es muß heißen
[d++]
-
keksekekse schrieb:
CStoll schrieb:
den Speicher zerschießen
Im alltäglichen Gebrauch kommen \t\r\n in Texten nicht allzu häufig vor (Extremfälle mal ausgeschlossen). Notfalls hilft Umbetten per realloc.
Sorry, mein Fehler - ich hatte die Zuweisung "d=s" übersehen (und deshalb ziehe ich meine obige Bemerkung zurück).
-
-
Okok, es funktioniert mit s[d]. Ist aber komplizierter vom Ansatz her s++, d--, muß man erst dahinterkommen.