Форум программистов, компьютерный форум, киберфорум
Наши страницы

Найти все вхождения строки s в t - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Квадратное уравнение http://www.cyberforum.ru/cpp-beginners/thread31180.html
Приветствую! Уважаемые программисты, начал учить С++ и вроде написал нижеследующую программу. У самого нет возможности проверить. Попросил друга, говорит, что появляется черный экран и всё....
C++ Классы возможностей(Mixin классы) Не могу понять смысла использования mixin классов( это класс в котором есть только методы и нет членов-данных) Т.е. к примеру у нас есть 2 базовых класса: Base 1 и Mixin, один из которых... http://www.cyberforum.ru/cpp-beginners/thread31173.html
C++ Дан массив действительных чисел
Дан массив действительных чисел, размерность которого N. Подсчитать, сколько в нем отрицательных, положительных и нулевых элементов.
Сформировать файл целых чисел C++
составить програму,которая формирует файлцелых чисел,получаемых с помощу датчика случайных чисел
C++ Структура http://www.cyberforum.ru/cpp-beginners/thread31170.html
сведения о каждом химическом елементе таблицы Менделеева представить виде структуры.написать прорму ввода таблицы в память компютера.
C++ Написать программу СТАРОЯПОНСКОГО КАЛЕНДАРЯ)) В старояпонском календаре был принят 12-летний цикл. Годы внутри цикла носили названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи. Написать... подробнее

Показать сообщение отдельно
Monte-Cristo
2794 / 1380 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
23.04.2009, 21:42
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
using namespace std;
 
int  seek_substring_KMP  (char s[],   char q[]);
 
int main()
{
    char text[255];
    char find[255];
 
    cout << "Enter the text:\n";
    cin.getline(text, 255);
    cout << "\nEnter find string:\n";\
    cin.getline(find, 255);
 
    cout << "index: " << seek_substring_KMP(text, find) << endl;
 
    system("pause");
    return 0;
}
 
int  seek_substring_KMP  (char s[],   char q[])
{ 
    int  i, j, N, M; 
    N = strlen(s); 
    M = strlen(q); 
    int *d =(int*)malloc(M*sizeof(int)); /* динамический массив длины М*/ 
    i=0; 
    j=-1;
    d[0]=-1;
    while(i<M-1)
    {
        while((j>=0) && (q[j]!=q[i]))
            j = d[j];
        i++;
        j++;
        if(q[i]==q[j])
            d[i]=d[j];
                else
        d[i]= j;
                }
        /* поиск */
        for(i=0,j=0;(i<=N-1)&&(j<=M-1); i++,j++)
            while((j>=0)&&(q[j]!=s[i]))
                j=d[j];
        free (d);  /* освобождение памяти массива d */ 
        if (j==M)
                return i-j;
        else /* i==N */ 
                return -1;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru