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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.67
koldun_89
4 / 1 / 0
Регистрация: 09.01.2010
Сообщений: 52
#1

Поиск подстроки в строке - C++

03.06.2011, 17:20. Просмотров 2501. Ответов 4
Метки нет (Все метки)

Добрый вечер. Помогите пожалуйста с заданием, нужно срочно его сделать. Сам текст: даны 2 массива (один большой, другой маленький), нужно написать функцию, которая ищет подстроку в строке. Т.е. получается идет поиск одного массива в другом. В итоге получается 4 параметра: это 1-ый массив и его длина, и 2-ой массив, который мы ищем и соответственно его длина. У меня есть только сама функция, но я не знаю правильная она или нет, к тому же ее наверно нужно дописать.

Код
#include <stdio.h>
#include <stldlib.h>

int poisk(int *a, int n, int *b, int m)
{
    for (i = 1; i <= n-m+1; i++)
    {
         j = 0;
         while (j < m && A[i+j] == B[j+1]) 
             j++;
         if (j == m) 
             return -1;
    }
}
Жду помощи...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2011, 17:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поиск подстроки в строке (C++):

Поиск подстроки в строке - C++
Здравствуйте. Задача такова: есть список (вообще, список большой, и не имеет в принципе ограничения, но сейчас у меня подстрок 5) подстрок,...

Поиск подстроки в строке - C++
Найти множество всех слов, которые встречаются в каждом из 2 заданных предложений.

Поиск подстроки в строке - C++
Уважаемые форумчане, помогите написать программу для поиска подстроки &quot;vvo&quot; в строке &quot;Petrovvortep&quot; Нужна очень срочно. можно...

Поиск подстроки в строке - C++
Как в С++ осуществляется поиск подстроки в строке???

Поиск подстроки в строке - C++
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;iostream&gt; using namespace std; int GetLength(char* string) { int i; int...

Поиск подстроки в строке - C++
Добрый день. Ошибка в программе. Первый раз ищет отлично, потом постоянно ошибка //-функция осуществляет поиск подстроки str2 в...

4
OstapBender
584 / 523 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
03.06.2011, 17:35 #2
поиск подстроки в строке - это strstr()...
в вашем случае надо сравнивать куски памяти

вот что-то сваял
C
1
2
3
4
5
6
int f(int* a1, int* a2, int s1, int s2) {
    for (int i=0; i<s1-s2; i++)
        if (memcmp(a2,a1+i,s2*sizeof(int))==0) return 1;
 
    return 0;
}
1 если нашел , 0 - если нет


так возвращает указатель на место в памяти:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int* f(int* a1, int* a2, int s1, int s2) {
    for (int i=0; i<s1-s2; i++)
        if (memcmp(a2,a1+i,s2*sizeof(int))==0) return a1+i;
 
    return 0;
 
}
//пример
int main() {
    int a1[14]={1,2,3,4,5,5,5,5,6,7,8,9,0};
    int a2[3]={3,4,5};
 
    std::cout << f(a1,a2,14,3)-a1+1;  // выведет место где нашлось
 
getchar();
}
0
koldun_89
4 / 1 / 0
Регистрация: 09.01.2010
Сообщений: 52
03.06.2011, 18:29  [ТС] #3
Что-то прям простенько оказалось) А не мог бы на С сделать? И если не трудно небольшое описание программы, а то мне ее отвечать надо будет
0
koldun_89
4 / 1 / 0
Регистрация: 09.01.2010
Сообщений: 52
05.06.2011, 14:19  [ТС] #4
Ау, OstapBender
0
koldun_89
4 / 1 / 0
Регистрация: 09.01.2010
Сообщений: 52
06.06.2011, 21:49  [ТС] #5
Мне надо не через memcmp, а как-то по другому. Помогите пл3
0
06.06.2011, 21:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2011, 21:49
Привет! Вот еще темы с ответами:

Поиск подстроки в строке - C++
Добрый день всем! Ребята помогите решить такую задачу. Мне нужно в строке char *text = &quot;Help me jax111mackey&quot; получить строку 111 в...

Поиск подстроки в строке - C++
Вообщем,не знаю почему в программе не работает считывание с файла,если в консоли всё ищет корректно,то при чтении из файла,как я понимаю не...

поиск подстроки в строке - C++
Всем доброго времени суток! Дано: две строки типа string, к примеру str1 = &quot;HeLLo&quot; и str2 = &quot;hell&quot; Вопрос: как найти из str1 подстроку...

Поиск подстроки в строке - C++
Здравствуйте. Очень нужна программа поиска подстроки в строке. Действительно оч нужна. точная формулировка задачи: Написать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru