Реализовать функции поиска последнего вхождения подстроки в строке - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Необходимо модифицировать данную функции, чтобы она указывала на индекс последнего вхождения слова в строке. То есть, если строка - Cyber Forum is Cyber Forum, а искомое слова Cyber, то она не должна выдавать 0.
Листинг программы
  1. int searchWord(const char str[81], const char word[21])
  2. /*
  3. Входные данные:
  4. str – исходная строка
  5. word – искомое слово
  6. Выходные данные:
  7. возвращаемое значение - индекс первого вхождения искомого слова в строку; возвращает -1, если слово не найдено
  8. */
  9. {
  10. int i = 0;
  11. while (str)
  12. {
  13. const char* s1 = str;
  14. const char* p1 = word;
  15. while (*s1 == *p1)
  16. {
  17. s1++; p1++;
  18. if (*p1 == '\0' || *s1 == '\0')break;
  19. }
  20. if (*p1 == '\0') return i;
  21. if (*s1 == '\0') return -1;
  22. str++;
  23. i++;
  24. }
  25. return -1;
  26. }

Решение задачи: «Реализовать функции поиска последнего вхождения подстроки в строке»

textual
Листинг программы
  1. //gcc 5.4.0
  2.  
  3. #include  <stdio.h>
  4. #include  <string.h>
  5.  
  6. int lastword(const char *str, const char *word) {
  7.     int res = -1;
  8.    
  9.     for (char *ptr=strstr(str, word); ptr; ptr=strstr(ptr+1, word))
  10.         res=ptr-str;
  11.  
  12.     return res;
  13. }
  14.  
  15. int main(void)
  16. {
  17.     char str[] = "Cyber Forum is Cyber Forum";
  18.     char word[] = "Cyber";
  19.  
  20.     printf("%d\n", lastword(str, word));
  21.    
  22.     return 0;
  23. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.071 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы