Как создать функцию, которая возвращает подстроку в языке Си?
В течение последнего дня я безуспешно пытался исправить этот код. Я пытаюсь создать простую функцию, которая берет две строки и находит подстроку между ними (иголка и стог сена). Кто-нибудь может мне помочь??
Что я уже пробовал:
char* stringString(char *needle, char *haystack) { int i, j; char *sub; for (i = 0; i < strlen(haystack); i++) { sub = &haystack[i]; for (j = 0; j < strlen(needle); j++) { if (haystack[i + j] != needle[j]) { continue; } if (needle[j] == 0) { return sub; } else i = i - j; if (haystack[i] == NULL) i--; } return sub; } return -1; }
Afzaal Ahmad Zeeshan
И что в этом плохого?
NightLocke
Он печатает всю строку, а не только подстроку...
PIEBALDconsult
Это то, что вы сказали ему сделать. И ваш код также очень неэффективен.
Алгоритм художника шлемиля ... https://www.joelonsoftware.com/2001/12/11/back-to-basics/