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

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

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

Показать сообщение отдельно
Новенький
44 / 9 / 2
Регистрация: 03.03.2009
Сообщений: 254
24.04.2009, 09:24  [ТС]
]Evg, исправь если сможешь
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<stdio.h>
#include<string.h>
int search(char s[200000],   char q[200000])
        { 
        int  i, j, N, M; 
        N = strlen(s); 
        M = strlen(q); 
        int *d = new int [M];
        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];
        if (j==M)
                return i-j;
        else 
                return -1;
        }
int main()
{
    char sen[200000],sen1[200000],sen2[200000];
    int x,i,l1,l2,j=0,k=0;
    gets (sen);l2=strlen(sen);
    gets (sen1);l1=strlen(sen1);
    x=search(sen,sen1);
    //printf ("%d ",x);
    while (j!=l2-l1){
          for (i=(x+l1); i<l2; i++){
              sen2[k]=sen[i];
              printf ("%c",sen2[k]);
              k++;
              }
          x=search(sen2,sen1);
          printf ("\n");
          j+=l1-1;
          }
    getchar();
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru