Strings Splitten / Teilen

ja... aber ich versuchue das nocheinmal und poste Dir das gleich mal.

hier:
Java:
izaguirre@ubuntu:~/C/Beleg_01$ gcc -g -o Liste Liste.c
izaguirre@ubuntu:~/C/Beleg_01$ gdb Liste
GNU gdb (Ubuntu/Linaro 7.2-1ubuntu11) 7.2
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/izaguirre/C/Beleg_01/Liste...done.
(gdb) > run
  ?????????????????????????????????????????????????????????????????????????????
   ?                                                                           ?
   ?                                                                           ?
   ?                                                                           ?
   ?                                                                           ?
   ?                                                                           ?
   ?                                                                           ?
   ?             [ No Source Available ]                                       ?
   ?                                                                           ?
   ?                                                                           ?
   ?                                                                           ?
   ?                                                                           ?
   ?                                                                           ?
   ?                                                                           ?
   ?????????????????????????????????????????????????????????????????????????????
exec No process In:                                           Line: ****   PC: **** 
Invalid window specified. 
The window name specified must be valid and visible.

(gdb)

Aber wie gesagt... ich weiß nicht so recht, wie mir das weiter helfen kann. Ich will ja nur wissen, wie ich die Leerzeilen aus meinem Text-Stream gefiltert bekomme.

Gruß
Davicito
 
Zuletzt bearbeitet:
Die > Zeichen waren nur als Hinweis gedacht, das diese Befehle nicht in der Shell, sondern dann im gdb eingegeben werden sollten. Du darfst diese also nicht mit eingeben.

Wenn du mit fgets einliest, schaust du einfach nach ob der erste Buchstabe ein \n ist. Diese Zeile läßt du dann weg.

Gruß
 
hmm... verstehe.
So wie ich das versucht habe, klapp das nicht!

Java:
char buffer[SIZE];
	FILE* file;
	char splitt[] = ",;.:!?><#'’+*~´` "; //Definition der Trennzeichen
	char* wort;
	
	// Überprüfung, ob eine Textdatei übergeben wurde.
	if(argc > 1 && (file = fopen(argv[1], "r")) != NULL)
	{
		// Gesamten Textinhalt auslesen, bis zum Textendezeichen.
		while(fgets(buffer, SIZE, file) != NULL)
		{		
		    if(fgets(buffer, SIZE, file) != "\n")
		    {			
			wort = strtok(buffer, splitt);
			// Einzelne Zeichen einlesen, bis zu einem Trennungszeichen.			
			while(wort != NULL)
			{			    	
				anhaengen(aktl_Elem, wort, copyString);				
				wort = strtok(NULL, splitt);			    			
			}
		    }			
		}
		fclose(file);
	}
	else
	{ 
		printf("\n Es wurde keine Textdatei übergeben!");
		printf("\n Bitte rufen Sie das Programm mit: ./Liste <Textdate> auf.  \n\n");
		exit(1);	
	}
 
Packe doch den Zeilenumbruch - und vielleicht auch den Tabulator - einfach mit in deine splitt-Variable hinein.

Gruß
MCoder
 
Sehr schön... beides hat prima funktioniert. Aber ich frage mich noch, ob man das noch besser machen könnte. Sodas man anstelle von splitt in der Funktion strtok() auch mit pattern arbeiten könnte. Hab dazu mal die Seite: http://www.mario-konrad.ch/index.php?page=30006 durch gelesen und schon mal ein bisschen herumexperimentiert.

Aber das klappt nicht sorecht, wie ich mir das vorstelle. Habt Ihr vielleicht schon mal Erfahrungen mit regulären Ausdrücken gesammelt?

Gruß, Davicito
 
Hi.
Aber ich frage mich noch, ob man das noch besser machen könnte. Sodas man anstelle von splitt in der Funktion strtok() auch mit pattern arbeiten könnte. Hab dazu mal die Seite: http://www.mario-konrad.ch/index.php?page=30006 durch gelesen und schon mal ein bisschen herumexperimentiert.

Aber das klappt nicht sorecht, wie ich mir das vorstelle.
Warum? Was stellst du dir denn vor?
Habt Ihr vielleicht schon mal Erfahrungen mit regulären Ausdrücken gesammelt?
Ja.

Gruß
 
naja... ich lese ja eine Text-Datei ein und wollte jetzt nur Wörter heraus filtern die alle Groß- und Kleinbuchstaben haben, Zahlen von 0-9, Bindestrich oder Unterlines besitzen

sprich: [a-zA-Z_] ( [A-Za-z0-9] | _ | - ])*
Aber wie ich das jetzt korrekterweise in meine While-Schleifen einbaue, verstehe ich nicht sorecht.
Ein Ansatz in die richtige Richtung fehlt mir ^^.

Gruß.
 
Zurück