Форум программистов, компьютерный форум 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; } подробнее

Показать сообщение отдельно
sergeevichvn
0 / 0 / 0
Регистрация: 02.02.2014
Сообщений: 8
04.02.2014, 23:48  [ТС]     Найти в строке два одинаковых фрагмента длиной более 5 символов и возвратить индекс начала первого из них
Цитата Сообщение от 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
#include <string.h> // Подключаем библиотеки
#include <stdio.h> // Подключаем библиотеки
int main()
{
   int L; // Объявляем переменную L типа integeer
   char str[100]; //создаем массив символьного типа
   char srs[7]; //создаем массив символьного типа, 
   char *pos;//+ переменную pos - указатель на char. В ней будет храниться адрес начала фрагмента
   puts("Где ищем:"); //вывод запроса на экран,  printf не лучше,т.к. в строке нет символов форматирования 
   gets(str); // получаем строку с клавиатуры и записываем в массив str
   L=strlen(str); //присваиваем переменной l значение длинны введенной строки
   for(int i=6;i<L-6;i++) 
   // цикл начинаем с конца первого 6-символьного фрагмента и выполняется пока i меньше длина строки-длина фрагмента
   {
        strncopy(srs,str+i-6,6); // берем очередные 6 символов из строки 
// тут не совсем понятно, что в скобках: srs - куда копируем,str+i-6 начиная откуда копировать,6 - не более 6 символов.
        srs[6]=0; // присваиваем 6 элементу массива 0. Ноль - это признак конца строки.
        pos=strstr(str+i,srs); // ищем после последнего взятого символа 
//что значит strstr - функция поиска подстроки srs В строке str начиная с i-го символа
        if(pos!=NULL) // если указатель pos нулевой, то такой подстроки нет
               printf("позиция второго фрагмента %s =%d",srs,(int)(pos-str));
   }
   return 0;
}
Огромное спасибо, если сдам, готов пополнить ваш баланс кармы

Добавлено через 52 минуты
15 31 D:\Безымянный1.cpp [Error] 'strncopy' was not declared in this scope - ошибка на строке strncopy(srs,str+i-6,6);
 
Текущее время: 13:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru