just_for_fun
Newbie
- Registriert
- Mai 2016
- Beiträge
- 4
Hey, bin neu hier und bräuchte ein paar Ansatz Tipps. (Student, erstes Semester)
Die Folgende Aufgabe ist eine Übung die ich Abliefern muss. Leider habe ich vom Code her noch keine Idee wie ich das umsetzen soll.
Hier erstmal die Aufgabe, darunter schreibe ich mal wie ich das Lösen würde (ohne Code).
_____________________________________________________________
Schreiben Sie ein Programm mit einer Funktion folgender Signatur
char* suche (char *str, char *such, unsigned int n);
welche die Adresse des n-ten Vorkommens des Strings such in der Zeichenkette str ermittelt und den Zeiger auf den Beginn des n-ten Vorkommens der gesuchten Zeichenkette zurückliefert. Falls das n-te Vorkommen der gesuchten Zeichenkette nicht gefunden wurde, wird der NULL–Zeiger zurückgegeben.
Beispiele:
printf("%s", suche("dreierleieierei", "ei", 1) ); // ergibt: eierleieierei
printf("%s", suche("dreierleieierei", "ei", 3) ); // ergibt: eierei
printf("%s", suche("dreierleieierei", "ei", 4) ); // ergibt: ei
printf("%s", suche("barbara macht barbarei", "arba", 2) ); // ergibt: arbarei
if( suche("barbara macht barbarei ", "asdf", 1) == NULL )
printf("nicht vorhanden!"); // sollte ausgegeben werden, da es nicht vorkommt
if( suche("barbara macht barbarei ", "barba", 3) == NULL )
printf("nicht vorhanden!"); // sollte ausgegeben werden, da es nur 2-mal vorkommt
__________________________________________________________________
Also mein Gedankengang ist folgender:
Ich muss als erstes, die Strings vergleichen und dabei ne Variable mitlaufen lassen um zu sehen wie oft der "such"-String im "str"-String vorhanden ist.
Danach gehe ich in eine if ((Variable != NULL) && (Variable <= n)) dann "str"-string beim n-ten Zeichen abtrennen und "such" vor dem Rest String von "str".
Ausgabe/Rückgabe
ELSE
nicht vorhanden (falsch,NULL)
Ist das so vom Gedankengang korrekt, bzw. weit genug zerkleinert?
Vll kann mir jemand einen Tipp/Hilfe geben im Bezug auf die Strings(string.h verboten) wie ich das angehen kann in Code-Sprache.
________________________________
Vielen Dank schon mal
Die Folgende Aufgabe ist eine Übung die ich Abliefern muss. Leider habe ich vom Code her noch keine Idee wie ich das umsetzen soll.
Hier erstmal die Aufgabe, darunter schreibe ich mal wie ich das Lösen würde (ohne Code).
_____________________________________________________________
Schreiben Sie ein Programm mit einer Funktion folgender Signatur
char* suche (char *str, char *such, unsigned int n);
welche die Adresse des n-ten Vorkommens des Strings such in der Zeichenkette str ermittelt und den Zeiger auf den Beginn des n-ten Vorkommens der gesuchten Zeichenkette zurückliefert. Falls das n-te Vorkommen der gesuchten Zeichenkette nicht gefunden wurde, wird der NULL–Zeiger zurückgegeben.
Beispiele:
printf("%s", suche("dreierleieierei", "ei", 1) ); // ergibt: eierleieierei
printf("%s", suche("dreierleieierei", "ei", 3) ); // ergibt: eierei
printf("%s", suche("dreierleieierei", "ei", 4) ); // ergibt: ei
printf("%s", suche("barbara macht barbarei", "arba", 2) ); // ergibt: arbarei
if( suche("barbara macht barbarei ", "asdf", 1) == NULL )
printf("nicht vorhanden!"); // sollte ausgegeben werden, da es nicht vorkommt
if( suche("barbara macht barbarei ", "barba", 3) == NULL )
printf("nicht vorhanden!"); // sollte ausgegeben werden, da es nur 2-mal vorkommt
__________________________________________________________________
Also mein Gedankengang ist folgender:
Ich muss als erstes, die Strings vergleichen und dabei ne Variable mitlaufen lassen um zu sehen wie oft der "such"-String im "str"-String vorhanden ist.
Danach gehe ich in eine if ((Variable != NULL) && (Variable <= n)) dann "str"-string beim n-ten Zeichen abtrennen und "such" vor dem Rest String von "str".
Ausgabe/Rückgabe
ELSE
nicht vorhanden (falsch,NULL)
Ist das so vom Gedankengang korrekt, bzw. weit genug zerkleinert?
Vll kann mir jemand einen Tipp/Hilfe geben im Bezug auf die Strings(string.h verboten) wie ich das angehen kann in Code-Sprache.
________________________________
Vielen Dank schon mal