- Registriert
- Dez. 2006
- Beiträge
- 909
nochmals danke!
i=i-j;
ich bekomm wieder keine NULL zurück wenn der String nicht vorhanden ist, sondern Seg. fault :/
i=i-j;
ich bekomm wieder keine NULL zurück wenn der String nicht vorhanden ist, sondern Seg. fault :/
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *self_strstr(char *text, char *suche);
int main()
{
char text[200]="aaaaaac";
char suche[200]="bbbbbb";
//printf("%s\n",self_strstr(text,suche));
puts(self_strstr(text,suche));
return 0;
}
char *self_strstr(char *text,char *suche){
int i=0;
int j=0;
size_t suche_size;
suche_size = strlen(suche);
while(text[i] != '\0' && suche_size != 0){ // solange bis binäre Null erreicht wird bzw bis String suche komplett gefunden wurde
if(text[i]==suche[j]){
suche_size--;
j++;
} else {
suche_size = strlen(suche);
i = i-j; // zurück zu letzten Stelle bevor suche näher untersucht wurde
j = 0;
}
i++;
}
if (suche_size == 0){
return text+i-strlen(suche);
}
else return NULL;
}
Zuletzt bearbeitet: