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

Программа по работе со строками - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Графика+классы с++ http://www.cyberforum.ru/cpp/thread72843.html
В общем ребят суть проги такова: реализовать балистическое движение тела под действием сил ньютона(стрельба из пушки), при создании использовать классы. Не могу сообразить,как сделать так: 1)чтобы...
C++ binary files f : file of integer; как тоже самое сделать в Си++??? то есть открыть файл в виде чисел??? по идеи так...но что дальше ifstream in("in.txt", ios::binary) http://www.cyberforum.ru/cpp/thread72766.html
Странный трабл с компилятором Visual Studio 6.0 C++
Приветствую! Вот столкнулся с неким траблом в студии. Хронология: значит попросили помочь с задачей "Задан текст состоящий из строк. Строк не менее 10. В строке не менее 5 слов, в слове не менее 5...
Вычислить количество элементов массива, больших С C++
1)В одноммерном массиве, состоящем из n вещественных элементов вычислить: количество элементов массива, больших С 2)произведение элементов массива расположенных после максимального по модулю...
C++ Потоки, приоритеты http://www.cyberforum.ru/cpp/thread72095.html
Нужно вывести квадраты на форме (каждый в своём потоке), в зависимости от приоритета, один прорисовывается быстрее, другой медленее. Сделал так: DWORD WINAPI OnPaint4(LPVOID lparam) { HDC...
C++ Динамичиские структуры Помогите написать программу: В составе программы описать функцию, которая формирует список Common, включив в него элементы, которые входят одновременно в спи-сок М1 и М2. язык с++ подробнее

Показать сообщение отдельно
outoftime
║XLR8║
510 / 432 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
13.12.2009, 15:54
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
#include <iostream>
#include <string>
#include <vector>
 
using namespace std;
 
int kmp(string t, string s)
{
    string sn = t + '$' + s;
    int n = sn.size(),
        nt = t.size();
    vector <int> pi (n);
    for (int i = 1; i < n; ++i)
    {
        int k = pi[i-1];
        while (k > 0 && sn[i] != sn[k]) --k;
        if (sn[i] == sn[k]) ++k;
        pi[i] = k;
        if (k == nt) return i - 2*nt;
    }
    return -1;
}
 
int main()
{
    string s, t;
    cin >> t >> s;
    cout << (kmp(t,s)) << endl;
    system("pause");
    return 0;    
}
Добавлено через 1 минуту
если увидишь незнакомую функцию сразу делай следующе:
1 - вводишь в гугл: <функция> c++ preferences
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru