Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ найти ошибку или предложить свое решение http://www.cyberforum.ru/cpp-beginners/thread1087874.html
Мальчик Вася играет в свою любимую RPG. Он нашел сундук с M ячейками, в каждой из которых лежит по одной бутылке с зельем лечения. У его героя на поясе есть N карманов, в каждом из которых также...
нужно сделать трассировку. кто-нибудь знает как? C++
неужели никто не знает как делать трассировку? завтра преподу сдавать все, а я уже который день не могу сделать трассировку. помогите. // 01(1).cpp: определяет точку входа для консольного...
C++ Определять тип вводимой переменной (char или int)
Вообщем изначально дали задание определять тип вводимой переменной (char или int ). Это я выполнил,затем изменили задание, нужно сделать чтоб была какая-нибудь строка или символьный масив, и...
C++ Не запускается программа после компиляции здравствуйте, собственно после данного кода компилятор Dev C++ никак не реагирует после нажатия RUN, компиляция проходит успешно. Что подскажете? раньше помню когда первый раз компилировал вылезала... http://www.cyberforum.ru/cpp-beginners/thread1087861.html
C++ где ошибка в коде? http://www.cyberforum.ru/cpp-beginners/thread1087848.html
видимо неправильно работает функция симметричности матрицы. потому что ввожу не симметричную матрицу, а она все равно сдвигает строку. где ошибка? #include <iostream> using namespace std; ...
C++ Рекурсия
Вот какой самый простой пример рекурсии я обнаружил в интернете: #include <iostream> using namespace std; int factorial(int n) { if (n == 1) return 1; else return factorial(n - 1)*n; }
C++ Без дополнительных библиотек текстовый файл
Без дополнительных библиотек преобразования текстового файла / С++ для начинающих -------------------------------------------------------------------------------- Добрый день! Ребята срочно...
C++ Проложить код программы для решения школьной геометрической задачи Задача: Дано: ABCA1B1C1 – прямая треугольная призма, AB = 13, CB = 14, AC = 15, O – центр описанной окружности, C1OC = 30°. Найдите V. Код: #include <conio.h> #include <iostream> #include... http://www.cyberforum.ru/cpp-beginners/thread1087821.html
C++ Сформировать из некоторой матрицы А(n,n) верхнеугольную, нижнетреугольную и диагональную матрицу http://www.cyberforum.ru/cpp-beginners/thread1087819.html
Сформировать из некоторой матрицы А(n,n) верхнеугольную матрицу B(n,n) (все элементы ниже главной диагонали нулевые), нижнетреугольную матрицу С(n,n) (все элементы выше главной диагонали нулевые) и...
C++ Перехват функции - GetProcAddress Здравствуйте. Покажите пожалуйста пример, как перехватит в dll "A" , функцию из dll "Б" В интернете только базовые примеры по перехвату функции через указатель, где я могу только через него и... http://www.cyberforum.ru/cpp-beginners/thread1087813.html
zss
Модератор
Эксперт С++
8310 / 7376 / 4581
Регистрация: 18.12.2011
Сообщений: 19,523
Завершенные тесты: 1
04.02.2014, 17:39 0

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

04.02.2014, 17:39. Просмотров 2993. Ответов 19
Метки (Все метки)

Ответ

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;
}


Вернуться к обсуждению:
Найти в строке два одинаковых фрагмента длиной более 5 символов и возвратить индекс начала первого из них
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.02.2014, 17:39

Текст, состоящий не более чем из 255 символов, разбить на строки длиной не более 50 символов в строке
Текст, состоящий не более чем из 255 символов, разбейте на строки длиной не более 50 символов в...

Найти в строке фрагменты, содержащие последовательность одинаковых символов длиной более 3
Задача:Функция находит в строке фрагменты, содержащие последовательность одинаковых символов длиной...

В заданной строке заменить все последовательности одинаковых символов длиной более двух на конструкцию
Не могу понять в чем ошибка... Прога не работает... Задание такое: В заданной строке заменить все...

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