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

Найти в строке два одинаковых фрагмента длиной более 5 символов и возвратить индекс начала первого из них - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ найти ошибку или предложить свое решение http://www.cyberforum.ru/cpp-beginners/thread1087874.html
Мальчик Вася играет в свою любимую RPG. Он нашел сундук с M ячейками, в каждой из которых лежит по одной бутылке с зельем лечения. У его героя на поясе есть N карманов, в каждом из которых также лежит по одной бутылке. Каждая бутылка восстанавливает фиксированное число очков здоровья. Вася хочет заменить часть бутылок, находящихся в кармане на поясе, бутылками из сундука так, чтобы суммарное...
C++ нужно сделать трассировку. кто-нибудь знает как? неужели никто не знает как делать трассировку? завтра преподу сдавать все, а я уже который день не могу сделать трассировку. помогите. // 01(1).cpp: определяет точку входа для консольного приложения. // #include <iostream> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread1087869.html
C++ Определять тип вводимой переменной (char или int)
Вообщем изначально дали задание определять тип вводимой переменной (char или int ). Это я выполнил,затем изменили задание, нужно сделать чтоб была какая-нибудь строка или символьный масив, и программа определяла тип позиции которую выбирает пользователь..(например 5-тый символ в строке).И надо переделать ,но я не знаю как это все осуществить...вот мой код,помогите,кто знает как это сделать....
Не запускается программа после компиляции C++
здравствуйте, собственно после данного кода компилятор Dev C++ никак не реагирует после нажатия RUN, компиляция проходит успешно. Что подскажете? раньше помню когда первый раз компилировал вылезала пустая консоль менее чем на секунду // Программа для преобразования // градусов Цельсия в градусы Фаренгейта: // Fahrenheit = NCelsius * (212 - 32)/100 + 32 // #include <stdio.h> #include...
C++ где ошибка в коде? http://www.cyberforum.ru/cpp-beginners/thread1087848.html
видимо неправильно работает функция симметричности матрицы. потому что ввожу не симметричную матрицу, а она все равно сдвигает строку. где ошибка? #include <iostream> using namespace std; const int N = 3; //объявляем константу, выражающую количество строк и столбцов void outM(int ); //объявляем функцию вывода матрицы на экран
C++ Рекурсия Вот какой самый простой пример рекурсии я обнаружил в интернете: #include <iostream> using namespace std; int factorial(int n) { if (n == 1) return 1; else return factorial(n - 1)*n; } подробнее

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6170 / 2899 / 282
Регистрация: 04.12.2011
Сообщений: 7,707
Записей в блоге: 3
03.02.2014, 16:54     Найти в строке два одинаковых фрагмента длиной более 5 символов и возвратить индекс начала первого из них
Цитата Сообщение от Fene4ka_ Посмотреть сообщение
zss, также на сколько я понимаю, мы не должны вводить, что ищем, а оно должно само найти, что ищем ...
Так функцию же показали. А из строки ввести разве сложнее чем с консоли? Вот тут много лишнего, но как рабочий вариант (не проверял дотошно ) :
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
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
 
int main()
{
char sourcestr[]="olo lol tratratrumbumbumubumbum bum bum bum";
const size_t size_compiring_str = 5;
char compiring_str[size_compiring_str+1]={0};
 
size_t pos_cmp=0;
size_t pos_fnd=pos_cmp+1;
char *find_pos=0;
char *rezult_pos=0;
size_t size_sourcestr = sizeof(sourcestr)/sizeof(char);
while(pos_cmp < size_sourcestr){
while(pos_fnd < size_sourcestr){
find_pos=0;
rezult_pos=0;
strncpy(compiring_str, &sourcestr[pos_cmp], size_compiring_str); 
if((find_pos = strstr(&sourcestr[pos_fnd], compiring_str))!=0){
rezult_pos=&sourcestr[pos_cmp]; 
    break;
}
pos_fnd++;
}
if(find_pos!=0){
    break;
}
pos_cmp++;
pos_fnd=pos_cmp+1;
}
if(find_pos){
cout<<"the first entry is "<<rezult_pos<<" at pos "<<pos_cmp<<" in "<<sourcestr<<endl;
cout<<"and the substring is "<< find_pos;
}
else
cout<<"position is not found";
 
cout<<endl;
system("pause");
return 0;
}
Если перекрываться могут, но ТС молчит, как партизан.
 
Текущее время: 23:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru