[erledigt] \n und \r aus String entfernen
-
Ich muss gerade Daten aus einer Access-Datenbank auslesen, aufbereiten und in eine Textdatei ablegen. Leider sind bei der Eingabe der Daten auch Zeilenumbrüche mit eingegeben worden. Da diese die Struktur der Textdatei allerdings sehr stören, will ich die Zeichen '\n' und '\r' durch Leerschritte ersetzen.
Leider funktioniert mein Programm noch nicht so, wie es sollte:char* ZeilenumbruchEntfernen(char String[255]) { int Index; for (Index=0; Index<strlen(String); Index++) { if (String[Index]==13) { printf("\nNeue Zeile"); String[Index]=' '; } if (String[Index]==10) { printf("\nCar. Return"); String[Index]=' '; } } return String; }
Problem: Es wird kein '\n' und kein '\r' gefunden, obwohl ich folgende Werte erhalte, wenn ich mir die Zahlenwerte der einzelnen Zeichen des Strings ausgeben lasse:
... 41 [b]13 10[/b] 68 ...
Ich habe probehalber auch mal die "10" durch "101" (='e') ersetzt und dann wurden brav alle 'e' durch ' ' ersetzt.
-
Also die Funktion ist in Ordnung. Alle char(13) und char(10) werden durch Blanks ersetzt. Kommen die in deinen Strings denn auch wirklich vor?
-
_matze schrieb:
Also die Funktion ist in Ordnung. Alle char(13) und char(10) werden durch Blanks ersetzt. Kommen die in deinen Strings denn auch wirklich vor?
Ja, das finde ich ja so seltsam. Ich hab mir extra die "Mühe" gemacht, das ganze bei den problematischen Fällen mal auszugeben:
if (strcmp("Probelmfall",Datensatz[1])==0) { printf("\nLänge: %i",strlen(Datensatz[2])); for (i=0; i<strlen(Datensatz[2]); i++) { printf("\ni: %i; Zeichen : %i",i,Datensatz[2][i]); } }
i: 95 Zeichen : 97 i: 96 Zeichen : 103 i: 97 Zeichen : 41 i: 98 Zeichen : 13 i: 99 Zeichen : 10 i: 100 Zeichen : 68
-
_matze schrieb:
Also die Funktion ist in Ordnung. Alle char(13) und char(10) werden durch Blanks ersetzt. Kommen die in deinen Strings denn auch wirklich vor?
Du hattest mit deiner Vermutung recht, ich hab die Funktion auf die falsche Spalte angewendet (da, wo keine Zeilenumbrüche waren).
Wenn Dummheit weh tun würde, ... !