Реализовать функции поиска последнего вхождения подстроки в строке - C (СИ)
Формулировка задачи:
Необходимо модифицировать данную функции, чтобы она указывала на индекс последнего вхождения слова в строке. То есть, если строка - Cyber Forum is Cyber Forum, а искомое слова Cyber, то она не должна выдавать 0.
int searchWord(const char str[81], const char word[21]) /* Входные данные: str – исходная строка word – искомое слово Выходные данные: возвращаемое значение - индекс первого вхождения искомого слова в строку; возвращает -1, если слово не найдено */ { int i = 0; while (str) { const char* s1 = str; const char* p1 = word; while (*s1 == *p1) { s1++; p1++; if (*p1 == '\0' || *s1 == '\0')break; } if (*p1 == '\0') return i; if (*s1 == '\0') return -1; str++; i++; } return -1; }
Решение задачи: «Реализовать функции поиска последнего вхождения подстроки в строке»
textual
Листинг программы
//gcc 5.4.0 #include <stdio.h> #include <string.h> int lastword(const char *str, const char *word) { int res = -1; for (char *ptr=strstr(str, word); ptr; ptr=strstr(ptr+1, word)) res=ptr-str; return res; } int main(void) { char str[] = "Cyber Forum is Cyber Forum"; char word[] = "Cyber"; printf("%d\n", lastword(str, word)); return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д