#include #include int einlesen(char * ); int startindex_suchen(char * , char * ); int main(void){ char * feld1; char * feld2; int l1, l2; printf("Geben Sie den erste String\n"); l1 = einlesen(feld1); printf("Geben Sie den zweite String\n"); l2 = einlesen(feld2); if(l2 > l1){ printf("Error: String2 ist groesser als String1.\nExiting...\n"); return 0; } int index; index = startindex_suchen(feld1, feld2); if(index == -1){ printf("\"%s\" kommt in \"%s\" nicht vor.", feld2, feld1); return 0; } else{ printf("\"%s\" kommt in \"%s\" ab der Stelle %d vor.\n", feld2, feld1, index); return 0; } } int einlesen(char * str){ char c; int i = 0; while((c = getchar()) != '\n'){ str[i++] = c; } str[i] = '\0'; return i; } int startindex_suchen(char * feld1, char * feld2){ int i1 = 0, i2 = 0; int jetzt, flag = 1; while(feld1[i1] != '\0' && i1 <= strlen(feld1) - strlen(feld2)){ jetzt = i1; // actualized index in feld1 while(feld2[i2] != '0'){ if(feld1[jetzt] != feld2[i2]){ i2 = 0; i1++; flag = 0; break; } jetzt++; i2++; } if(flag){ return i1; } } return -1; }