Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
1 / 1 / 1
Регистрация: 09.10.2014
Сообщений: 79
1

Переменная для запоминания

17.04.2015, 22:27. Показов 1557. Ответов 5
Метки нет (Все метки)

Необходимо осуществить программу, редактирующую некоторый текст. Первый пункт я выполнил, ко второму не знаю как подступиться (суть его в том, что я должен обрезать текст с символа N по M), но в тексте ведь может встречаться не только один элемент N и M. Как сделать выбор начального и конечного элементов по всему тексту?
Переменная для запоминания

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
62
63
64
65
66
67
68
69
70
71
72
73
#include <iostream>
#include <string>
 
using namespace std;
bool f;
 
void Search(string text, char search)
{
    for (int i = 0; i < text.length(); i++)
    {
        if (text[i] == search)
        {
            cout << "Символ найден на " << i + 1 << " месте" << endl;
            f = true;
        }
    }
}
 
int main()
{
    setlocale(LC_ALL, "");
    string text;
    char search;
    char N;
    int choose = 0;
    int choose2;
    int place=0;
    int i;
 
    cout << "Введите текст: ";
    getline(cin, text);
    cout << endl << "Что вы хотите сделать?" << endl;
    cout << "1. Поиск символа в тексте" << endl;
    cout << "2. Отбор с N до M символа" << endl;
//  cout << "3. Замена всех первых строчных букв слов прописными" << endl;
    cout << "3. Выход" << endl;
 
    while (choose != 3)
    {
        cout << endl << "Дальнейшее действие ";
        cin >> choose;
 
        if (choose == 1)
        {
            cout << "Какой символ вы хотите найти?" << endl << "Символ: ";
            cin >> search;
            Search(text, search);
            if (!f)
            {
                cout << "Элемент не найден." << endl;
            }
        }
        if (choose == 2)
        {
            cout << "Какой элемент считать начальным?" << endl;
            cout << "Начальный элемент: ";
            cin >> N;
            for (i = 0; i < text.length(); i++)
            {
                if (text[i] == N)
                {
                    place++;
                    cout << place << ". ";
                    cout << "Символ найден на " << i+1 << " месте" << endl;
                }
            }
            cout << "Какой выбрать?" << endl;
            cin >> choose2;
            cout << "Начальный элемент определен на позиции";
        }
    }
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.04.2015, 22:27
Ответы с готовыми решениями:

Команда для запоминания даты
Нужно создать бат файл который От имени администратора запоминает текущую дату вводит дату...

Программа для запоминания англ. слов
Может кто-нибудь делал для себя что-то подобное. Нужна программа (портабельная, работающая с...

Макрос для запоминания изменившихся ячеек
Всем привет:) Помогите доработать макрос, суть которого заключается в том, что в режиме реального...

Программа для запоминания таблицы умножения
Решил реализовать программу для запоминания таблицы умножения для младшей сестренки, что хочу...

5
Модератор
Эксперт по электронике
8574 / 6389 / 860
Регистрация: 14.02.2011
Сообщений: 22,222
17.04.2015, 22:30 2
для поиска первого цикл сначала, пока не встретится нужный символ
для поиска последнего цикл с конца,, пока не встретится нужный символ
потом проверка что последний стоит после первого
иначе возможны недоразумения
например MAN
0
1 / 1 / 1
Регистрация: 09.10.2014
Сообщений: 79
17.04.2015, 22:38  [ТС] 3
С поиском все в порядке, у меня находится искомый начальный элемент. Находятся несколько его позиций. Я не знаю как продолжить работу с каким-либо из них.
Допустим, текст "привет, киберфорум"
Начальный элемент: е
1. Найденный элемент найден на 5 месте
2. Найденный элемент найден на 12 месте
Какой выбрать?
2
Начальный элемент выбран и находится на 12 месте

Вот так должно быть
0
Модератор
Эксперт по электронике
8574 / 6389 / 860
Регистрация: 14.02.2011
Сообщений: 22,222
17.04.2015, 22:50 4
Цитата Сообщение от Bad_Trip Посмотреть сообщение
Начальный элемент выбран и находится на 12 месте
ну и делай цикл с 12 места до которого тебе нужно,допустим до 20
C++
1
2
for(int i=12;i<20;i++)
  cout<<text[i];
0
1 / 1 / 1
Регистрация: 09.10.2014
Сообщений: 79
17.04.2015, 22:55  [ТС] 5
Да я же для примера взял этот символ и этот текст
Может быть, что угодно
А вы лишь для частного случая написали
0
3 / 3 / 1
Регистрация: 10.04.2015
Сообщений: 14
17.04.2015, 23:07 6
Лучший ответ Сообщение было отмечено Bad_Trip как решение

Решение

Допустим, текст "привет, киберфорум"
Начальный элемент: е
1. Найденный элемент найден на 5 месте
2. Найденный элемент найден на 12 месте
Елемент на каком месте выбрать выбрать?
12

C++
1
2
int f;
cin>>f; //12
Допустим, текст "привет, киберфорум"
Начальный элемент:ф
1. Найденный элемент найден на 14 месте

Елемент на каком месте выбрать выбрать?
C++
1
2
3
4
int l;
cin>>l //14
for( f;f<l;f++){
cout<<text[f]
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.04.2015, 23:07

Программа для запоминания неправильных английских глаголов
У меня нет серьезного опыта программирования. Программа написана на Python 3 и PyQt5 и...

Написать программу для запоминания последовательности в виде связного списка
Заданная последовательность целых положительных чисел. Написать программу для запамьятування...

Подскажите какой паттерн использовать для запоминания расположения категории товара
Товар может находиться в подкатегории например, техника/цифровая техника/фотоаппараты - вложенность...

Составить программу для запоминания в таблице А(15) количества отрицательных элементов каждого столбца таблицы В(3,15)
Составить программу для запоминания в таблице А(15) количества отрицательных элементов каждого...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru