_mclaren_
Lieutenant
- Registriert
- Dez. 2006
- Beiträge
- 909
Hallo!
Ich soll für C die strstr() Funktion selbst schreiben.
Sie funktioniert - zum Teil
Also mein Problem ist, wenn der String "suche" nicht im String "text" enthalten ist, bekommt ich ein Segmentation fault - ich weiß aber nicht wieso.
Und eine Frage, welchen Datentyp soll die Funktion idealerweise haben?
danke vorab!
Ich soll für C die strstr() Funktion selbst schreiben.
Sie funktioniert - zum Teil
Also mein Problem ist, wenn der String "suche" nicht im String "text" enthalten ist, bekommt ich ein Segmentation fault - ich weiß aber nicht wieso.
Und eine Frage, welchen Datentyp soll die Funktion idealerweise haben?
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int self_strstr(char *text, char *suche);
int main()
{
char text[200]="Nun muss du suchen wo ich bin"; // hier soll dann gesucht werden
//char suche[200]="xx"; // das soll gesucht werden - Segmentation fault!!
char suche[200]="wo"; // das soll gesucht werden - funktioniert
puts(self_strstr(text,suche));
}
int self_strstr(char *text, char *suche){
int i=0;
int j=0;
size_t suche_size;
int position;
suche_size = strlen(suche);
while(text[i] != '\0' && suche_size != 0){ // bis Binäre Null im Text bzw. alle Feldelemente gefunden
if(text[i]==suche[j]){
suche_size--;
j++;
}
i++;
}
if (suche_size == 0){
return &text[i-strlen(suche)];
}
else return NULL;
}
danke vorab!