Форум программистов, компьютерный форум CyberForum.ru

подстрока - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ тема классы http://www.cyberforum.ru/cpp-beginners/thread232423.html
Ребята, помогите лабораторки доделать. Введите текст.Удалите все пробелы. с помощью классов написать просят
C++ Лабораторные по классам С абсолютно не знаю, поэтому пришел сюда за помощью. Лабораторная 1 Описать базовый класс «Элемент». Поля: - имя элемента (указатель на строку символов); - количество входов элемента; - количество выходов элемента. Методы: - конструктор класса; - деструктор класса; http://www.cyberforum.ru/cpp-beginners/thread232381.html
немного усовершенствовать... C++
B]как сделать так чтобы пробег автобусов генерировался randomize а не вводился с клавиатуры...?...все время получаются какие то ошибки:gsad: /* 5 20. В автопарке находится 10 автомобилей. Известен их пробег в течение каждого из 5 рабочих дней. Определить, какой из автомобилей за рабочую неделю преодолел максимальное расстояние. Если таких несколько, то вывести хотя бы одного из них....
C++ Подскажите почему так?
Я конечно новичок в с++, но чего-то это уже совсем.. Почему строка cout << 1/2; выводит "0" ?
C++ удаление n- го элемента из строки http://www.cyberforum.ru/cpp-beginners/thread232308.html
напишите пожалуйста код, без использования ст. функциий. спасибо!
C++ Арифметические выражения на с++ Помогите записать и решить выражение. Одни ошибки и голова пухнет.%-) Вам вроде бы помощь нужна? Так постарайтесь облегчить задачу тем, кто в принципе мог бы помочь - напишите задание, код (если есть) и проблемы, с которыми столкнулись, в сообщении. подробнее

Показать сообщение отдельно
RUSya82
 Аватар для RUSya82
236 / 114 / 3
Регистрация: 15.10.2010
Сообщений: 395
22.01.2011, 10:59     подстрока
Я такое писал, вот функция для алгоритма Бойера - Мура.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//-----------Функция поиска подстроки, реализующая алгоритм Бойра-Мура   
int findBM (char A[], int n, char S[], int m)
{
      int i, j, k;
      int r[256]; //Массив сдвигов
      for (k=0;k<256;k++) //заполняем сначала весь массив значениями m
         r[k] = m;
      for (j=0;j<m-1;j++)
      {
         r[(int)(S[j])] = m-j-1;
      }
      i = m;
      j = m;
      //-----начинаем поиск
      do
      {
         j=m;//так как поиск начинается с конца, то
         k=i;
         do
         {
            j--;//нумерация элементов массива начинается с нуля
            k--;
         }while((j>=0) && (A[k] == S[j]));//цикл прерывается, если все символы совпали, или произошел промах
         i = i + r[(int)(A[i-1])];//промах произошел на i-1 элементе, сдвигаемся на соответсвующее количество символов
      }while ((j>=0) && (i <= n));//если j<0, то совпадение найдено, если i>n,то проверили весь массив А
      if (j<0)
         return k+1;
      else  
         return -1;
}
 
Текущее время: 23:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru