[Мы решаем ваши проблемы с Си и Паскалем ]
Главная » Статьи » Задачи из заказов » Заказ 07.03.08

Написать функцию POISK(str, podstr, k), которая осуществляет поискподстроки podstr в строке str, начиная с позиции k. Если подтрока ...
// 1.7
// Написать  функцию  POISK(str,  podstr, k),  которая  осуществляет  поиск
// подстроки  podstr  в  строке  str,  начиная  с  позиции  k.  Если  подстрока
// найдена,  то  функция  возвращает  адрес  начала  этой  подстроки  в  строке
// str.  Если  подстрока  не  найдена,  то функция  возвращает  NULL.  
#include <stdio.h>
#include <conio.h>
#include <string.h>
int poisk(char* str, char* podstr, int k)
{
  int n = strlen(str);
  int m = strlen(podstr);
  int j = 0;
  for (int i = k - 1; i < n; i++)
  {
    if (str[i] == podstr[j])
    {
      j++;
      if (j == m)
    return i + 1 - (m - 1);
    }
    else
      j = 0;
  }
  return NULL;
}

void main()
{
  clrscr();
  const nmax = 100;
  int k;
  char str[nmax], podstr[nmax];
  printf("Vvedite stroku: ");
  gets(str);
  printf("Vvedite podstroku: ");
  gets(podstr);
  printf("Vvedite k: ");
  scanf("%d", &k);
  int r = poisk(str, podstr, k);
  if (r != NULL)
    printf("resultat = %d", r);
  else
    printf("NULL");
  getch();
}
Категория: Заказ 07.03.08 | Добавил: solver (07.03.2008)
Просмотров: 871