12 фев 2020 (OFF) conf (S) :

поиск вхождений

версия сырая, глючная, но пока оставлю здесь. поработаю над ней в следующие выходные.
#include <stdio.h>


int length (char t[]);

int strindex (char s[], char t[]);

int main () {

char array[1000] = "Boston_Acoustic_Bass_Test_-_Subwoofer_Test_Sound_-_Woofer-Cooker_No_Joke.mp3";
char template[120] = "Joke.mp3";

printf ("%s\n", array);
printf("Жырность: %i\n", strindex (array, template));

return 0;
}

int strindex (char s[], char t[]) {
int result;
int start, temp;
for (int i = 0; s[i] != '\0'; i++) {
start = i;
temp = 0;
result = 0;
while (t[temp] != '\0' && s[start] != '\0') {
if (t[temp] == s[start]) {
result++;
}
else {
result--;
}
start++;
temp++;
}
if (result == length (t)) {
printf("%i %i\n", start - (length (t) - 1), --start);
return result;
}
}
return 0;
}

int length (char t[]) {
int i;
for (i = 0; t[i] != '\0'; i++);
return i;
}
вывод:
Boston_Acoustic_Bass_Test_-_Subwoofer_Test_Sound_-_Woofer-Cooker_No_Joke.mp3
68 75
Жырность: 8

Комментарии (0)

Показать комментарий
Скрыть комментарий
Для добавления комментариев необходимо авторизоваться
Версия: Mobile | Lite | Доступно в Google Play