Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.62/29: Рейтинг темы: голосов - 29, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 23.03.2016
Сообщений: 137

Определить позицию, с которой подстрока входит в строку

23.10.2016, 19:00. Показов 6575. Ответов 64
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
не работает программа, выдает ошибки помогите плз
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
//  Лабораторная работа №3
//  Массивы
//  
 
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int f(char *s, char *c, int n)
{
    int i, j;       // Счетчики для циклов
    int lenC, lenS; // Длины строк
        
    //Находим размеры строки исходника и искомого
    for (lenC = 0; c[lenC]; lenC++);
    for (lenS = 0; s[lenS]; lenS++);
 
    for (i = 0; i <= lenS - lenC; i++) // Пока есть возможность поиска
    {
        for (j = 0; s[i + j] == c[j]; j++); // Проверяем совпадение посимвольно
        // Если посимвольно совпадает по длине искомого
        // Вернем из функции номер ячейки, откуда начинается совпадение
        if (j - lenC == 1 && i == lenS - lenC && !(n - 1)) return i;
        if (j == lenC)
        if (n - 1) n--; 
        else return i;
        }
    //Иначе вернем -1 как результат отсутствия подстроки
    return -1;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_CTYPE, "rus");//Русификация консоли
    char cont('1');
    while (cont - '0')
    {
        char s[255];//Объявление строки
        char c[255];//Объявление подстроки
        cout << "Введите строку "<<endl;
        cin.getline(s, 255);
        cout << "Введите подстроку "<<endl;
        cin.getline(c, 255);
        int i, n = 0, l = 0;//Объявление переменных
        for (i = 1; n != -1; i++)
        {
            n = f(s, c, i);
            if (n >= 0)
            {
                n += 1;
                cout << "Позиция, с которой подстрока входит в строку = " << n << endl;
                l++;
            }
        }
        if (l==0)
            cout << "Подстрока не входит в строку." << endl;
        cout << "Хотите продолжить работу программы? (Да - любой символ, нет - 0)" << endl;
        cin >> cont;
        cin.ignore(255, '\n');
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.10.2016, 19:00
Ответы с готовыми решениями:

Определить, сколько раз данная подстрока входит в строку
Вводятся подстрока и строка. Определить, сколько раз данная подстрока входит в строку. Наложение строк не учитывать, т.е. в строку aaaa...

Определить, сколько раз в строку входит заданная подстрока
Задача дана строка. определить сколько раз входит в нее группа abc с++ Нужно писать на с++ // ConsoleApplication3.cpp : Этот файл...

Дана строка. Определить, сколько раз входит в нее подстрока "abc"
написать нужно 2 программы массивы и функции strink.

64
0 / 0 / 0
Регистрация: 23.03.2016
Сообщений: 137
24.10.2016, 19:56  [ТС]
Студворк — интернет-сервис помощи студентам
можете ссылку дать откуда визуал студио 2010 скачать можно нормальный??? я какоюто фигню качаю все время.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,430
24.10.2016, 19:58
Пишет, что у тебя две функции main() (в 7 строке и в 43). Осатвь в коде одну.

Добавлено через 54 секунды
Цитата Сообщение от Sacredlife Посмотреть сообщение
можете ссылку дать откуда визуал студио 2010 скачать можно нормальный??? я какоюто фигню качаю все время.
Ты делаешь фигню, а не качаешь. У меня такая же студия, и что? Другая студия тебе мало поможет, если будешь продолжать фигню делать.
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
24.10.2016, 19:59
Цитата Сообщение от Sacredlife Посмотреть сообщение
через пустой проект не открывает ,нет куда текст писать
Ну естественно, он же пустой.
Теперь начинаем его наполнять тем, что нужно.
Правая кнопка мыши по папке Resource Files (Файлы исходного кода) ->Add (Добавить) -> New Item (Создать элемент).
В списке ищем C++ File (Файл C++), вводим имя файла, щелкаем Add (Добавить).
И опаньки, уже есть куда текст писать.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,430
24.10.2016, 20:02
Цитата Сообщение от Даценд Посмотреть сообщение
И опаньки, уже есть куда текст писать.
С двумя main()...
0
0 / 0 / 0
Регистрация: 23.03.2016
Сообщений: 137
25.10.2016, 14:06  [ТС]
так
0
0 / 0 / 0
Регистрация: 23.03.2016
Сообщений: 137
25.10.2016, 14:09  [ТС]
а что делать если этой папки нет??
Миниатюры
Определить позицию, с которой подстрока входит в строку  
0
0 / 0 / 0
Регистрация: 23.03.2016
Сообщений: 137
25.10.2016, 14:11  [ТС]
не пойму ничего, где эта папка находится ?
0
0 / 0 / 0
Регистрация: 23.03.2016
Сообщений: 137
25.10.2016, 14:15  [ТС]
убрал 7 строчку
Миниатюры
Определить позицию, с которой подстрока входит в строку  
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,430
25.10.2016, 15:14
Цитата Сообщение от Sacredlife Посмотреть сообщение
убрал 7 строчку
Лишнюю функцию main(), которая начинается с седьмой строки, нужно убрать, а не седьмую строчку. Убери весь код и вставь код из первого поста, потом жми F7, и выложи вывод компилятора.
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
25.10.2016, 15:34
Цитата Сообщение от Sacredlife Посмотреть сообщение
не пойму ничего, где эта папка находится ?
Вот же она:
Миниатюры
Определить позицию, с которой подстрока входит в строку  
0
0 / 0 / 0
Регистрация: 23.03.2016
Сообщений: 137
25.10.2016, 18:32  [ТС]
а, попробую сейчас

Добавлено через 3 минуты
Убери весь код и вставь код из первого поста, потом жми F7, и выложи вывод компилятора

,какой код из первого поста??

Добавлено через 3 минуты
using namespace std;

вот 7 строка же
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,430
25.10.2016, 18:32
Цитата Сообщение от Sacredlife Посмотреть сообщение
какой код из первого поста??
Их там разве несколько? Или не знаешь, где находится первый пост?
0
0 / 0 / 0
Регистрация: 23.03.2016
Сообщений: 137
25.10.2016, 18:34  [ТС]
можешь на скрине показать? вместо чего и что мне написать??

Добавлено через 12 секунд
не знаю, я октрываю там нет ничего, чепуха
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,430
25.10.2016, 18:35
Цитата Сообщение от Sacredlife Посмотреть сообщение
вот 7 строка же
Забудь о седьмой сроке.
Цитата Сообщение от nd2 Посмотреть сообщение
Убери весь код и вставь код из первого поста, потом жми F7, и выложи вывод компилятора.
Добавлено через 41 секунду
Цитата Сообщение от Sacredlife Посмотреть сообщение
не знаю, я октрываю там нет ничего,
Что открываешь?
0
0 / 0 / 0
Регистрация: 23.03.2016
Сообщений: 137
25.10.2016, 18:36  [ТС]
все, увидел, где 59 строк,я что то с страницами напутал, думал разные темы создаются.. щас попробую
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,430
25.10.2016, 18:36
Весь код, который сейчас компилируешь (из файла sasa.cpp) убери, а этот вставь:
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
//  Лабораторная работа №3
//  Массивы
//  
 
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int f(char *s, char *c, int n)
{
    int i, j;       // Счетчики для циклов
    int lenC, lenS; // Длины строк
        
    //Находим размеры строки исходника и искомого
    for (lenC = 0; c[lenC]; lenC++);
    for (lenS = 0; s[lenS]; lenS++);
 
    for (i = 0; i <= lenS - lenC; i++) // Пока есть возможность поиска
    {
        for (j = 0; s[i + j] == c[j]; j++); // Проверяем совпадение посимвольно
        // Если посимвольно совпадает по длине искомого
        // Вернем из функции номер ячейки, откуда начинается совпадение
        if (j - lenC == 1 && i == lenS - lenC && !(n - 1)) return i;
        if (j == lenC)
        if (n - 1) n--; 
        else return i;
        }
    //Иначе вернем -1 как результат отсутствия подстроки
    return -1;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_CTYPE, "rus");//Русификация консоли
    char cont('1');
    while (cont - '0')
    {
        char s[255];//Объявление строки
        char c[255];//Объявление подстроки
        cout << "Введите строку "<<endl;
        cin.getline(s, 255);
        cout << "Введите подстроку "<<endl;
        cin.getline(c, 255);
        int i, n = 0, l = 0;//Объявление переменных
        for (i = 1; n != -1; i++)
        {
            n = f(s, c, i);
            if (n >= 0)
            {
                n += 1;
                cout << "Позиция, с которой подстрока входит в строку = " << n << endl;
                l++;
            }
        }
        if (l==0)
            cout << "Подстрока не входит в строку." << endl;
        cout << "Хотите продолжить работу программы? (Да - любой символ, нет - 0)" << endl;
        cin >> cont;
        cin.ignore(255, '\n');
    }
}
Потом:
Цитата Сообщение от nd2 Посмотреть сообщение
жми F7, и выложи вывод компилятора.
0
0 / 0 / 0
Регистрация: 23.03.2016
Сообщений: 137
25.10.2016, 18:38  [ТС]
у меня еще такой вопрос, каким именем обозначать? при создании я написал лаба 3, и тут тоже лаба 3 написал, ошибку выдало, без разницы какое??
Миниатюры
Определить позицию, с которой подстрока входит в строку  
0
0 / 0 / 0
Регистрация: 23.03.2016
Сообщений: 137
25.10.2016, 18:39  [ТС]
вот, а как прямоугильнк сделать черный?? чтобы там вводить цифры результат чтобп оказывалто?
Миниатюры
Определить позицию, с которой подстрока входит в строку  
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,430
25.10.2016, 18:43
Цитата Сообщение от Sacredlife Посмотреть сообщение
а как прямоугильнк сделать черный??
Теперь запускай, жми F5.
0
0 / 0 / 0
Регистрация: 23.03.2016
Сообщений: 137
25.10.2016, 18:51  [ТС]
отлично, слушай можно тебя в скайп?? мне еще 2 лабы нужно , там вроде тоже ошибки,текста одногруппников,они сдавали, вроед норм все
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.10.2016, 18:51

Определить, входит ли в данную строку пробел
Определить, входит ли в данную строку пробел, и на каких позициях он расположен. P.S. Если это возможно, программа должна быть...

Определить, сколько раз входит в строку группа букв abc
Дана строка. Определить, сколько раз входит в нее группа букв abc.

Определить максимальный по модулю элемент элемент массива и позицию в которой он расположен
Помогите пожалуйста решить задачку по с++; Задан одномерный массив В , состоящий из n вещественных элементов. Определить максимальный...

Определить позицию первого вхождения в заданную строку какого-либо символа
Помогите составить процедуру, позволяющую определить позицию первого вхождения в заданную строку какого-либо символа из второй заданной...

Определить позицию первого вхождения в заданную строку какого-либо символа из второй заданной строки
б) Даны две строки произвольного текста. Составить процедуру, позволяющую определить позицию первого вхождения в заданную строку...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения. https:/ / habr. com/ ru/ sandbox/ 295048/ начало и оглавление - Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование. . .
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0) Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона Уважаемые коллеги! В продолжение. . .
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru