Übergebenen String in c++ einlesen

Ach ja, was ich noch vergessen hab zu obigem anzumerken:

Eigentlich glaube ich, daß die Funktion (Funk4) nicht nur das ermittelte Wort (keyword) zurückliefern muß, sondern auch den "Reststring" (nennen wir es mal rString, damit die Funk1 überhaupt weiß, was er beim nächsten Aufruf von Funk2, Funk3 etc. weitergeben soll. Oder liege ich damit total falsch?!

Gruß
 
Also ich versteh nicht so ganz, was Du eigentlich vor hast... :confused: :confused: :confused:

Erklär mal bitte, warum Du für jede Teilaufgabe gleich 'ne neue Funktion schreibst und was Du am Ende eigentlich machen willst...
 
Ich sehe es auch so, daß zumindest die Funktion Funk3 wegfallen könnte, weil sie (scheinbar) überflüssig ist. Aber Funktion Funk2 ist notwendig, weil Funk2 eine weitere wichtige Abprüfung durchführt, nämlich, ob der erste Teil (Wort) des Strings bestimmte Voraussetzungen erfüllt, und das ist nun mal getrennt von allem anderen gelöst worden.

Frage: Gibt es nun keine Hoffnung für mich, oder ist es irgendwie lösbar, wenn ich zumindest auf die Funktion (Funk3) verzichte?

Danke!
 
Ich hab Dir da oben ein kleines Programm hingeschrieben, was eigentlich ganu das macht, was Du willst (oder nicht?!). Der String wird im Hauptprogramm geparsed (aus dem Hauptprogramm kannst Du genauso gut 'ne Funktion machen, die dann im neuen Hauptprogramm aufgerufen wird) und mit der Funktion DoSomething(char* temp) kannst Du die Prüfung des Tokens machen. Je nach dem Ergebnis der Prüfung entscheidest Du dann (innerhalb der DoSomething()-Funktion) über das weitere Vorgehen.

Mehr kann ich dazu auch nicht sagen...
 
Ich gebe offen zu, Deine Ausführungen haben mich schon sehr weit gebracht!
Dafür danke ich Dir auch sehr, ich weiß, inzwischen nerve ich ab... Mich nervt es wirklich auch sehr, ich will aber das Handtuch noch nicht hinschmeisen und deshalb habe ich nun alles so umgestellt, daß zuerst die Funktion mit strtok durchgegangen wird und dann die ursprüngliche Funktion (Funk1), wo die einzelnen Worte, die von der strtok-Funktion übergeben werden, verarbeitet werden. Das ist im Endeffekt viel einfacher zu realisieren.

Dort, wo ich noch ein Problem habe ist, wo ist der "Reststring"?

In "token" ist ja das aktuell gefundene Word

In "xyz" ist der ursprüngliche gesamte String (Hallo ich bin es.\n Wie geht es Dir)

in "???" soll der Reststring (bspw. beim ersten Durchgang:"ich bin es.\n Wie geht es Dir") sein.

Wie kriege ich nun diesen RestString heraus? Hast Du dazu einen Tip? Dann ist das 'Generve' ;) hoffentlich vorbei!

Danke für die Geduld!
 
Das Posting war Quatsch...sorry. :) Ich komm nochmal rein...

Code:
#include <string.h>
#include <stdio.h>

char string[] = "A string of";
char seps[]   = " ,\t\n";

void DoSomething(char* temp, char* orig) {

	printf("%s\t%s\n", temp, orig);
}


void main() {

   char* token;

   unsigned int tokenlength = 0;
   unsigned int origlength = strlen(string);

   token = strtok( string, seps );
 
   while( token != NULL ) {
   
	    tokenlength += strlen(token) + 1;

		tokenlength = (tokenlength > origlength) ? origlength : tokenlength;

		DoSomething(token, string + tokenlength);
		
		token = strtok( NULL, seps );
	}
}

^ So funktioniert es, ob es nun so 'ne tolle Lösung ist weiß ich net, aber ich hab keine Zeit großartig drüber nachzudenken (hab am Mittwoch Theoretische Informatik Prüfung).
 
Zuletzt bearbeitet von einem Moderator:
Jup, das muß es sein (zumindest auf den ersten Blick).

Danke, daß Du Dir die Zeit genommen hast!

Ich wünsche Dir alles Gute zu Deiner theoretischen Prüfung. Du wirst das schon packen! Bin ich mir fast ganz sicher!

Also, ein schönes Wochenende und nochmals vielen Dank!
 
Zurück