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

итератор - C++

Восстановить пароль Регистрация
 
alteramax
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 20
02.03.2014, 09:12     итератор #1
здраствуйте программисты,нужно поправить программу так,чтоб она работала через итераторы,помогите плиз
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
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;
 
int main()
{
    setlocale (LC_ALL, "Russian");  // 
    string str;                     // переменная для подстроки
 
    cout<<"Введите подстроку:\n";
    cin>>str;
    string revstr = str;                        // переменная для перевернутой подстроки, инициализируется исходной подстрокой
    string mainStr;                             // переменная для хранения предложения
    reverse(revstr.begin(), revstr.end());      // функция переворачивает revstr - получаем обратноу подстроку
 
    cout<<"Длинна подстроки : "<<str.size()<<endl;
    cout<<"Введите размерность массива со словами:";
    int counter=0;      // [B]счётчик слов, нужно делать через итераторы[/B]
    int x;      // переменная для хранения размерости массива
    cin>>x;     //
 
    string *a=new string[x];        // создаем указатель на массив строк
    vector<string> b;               // массив для хранения отобранных слов
        for (int i=0;i<x;i++)       // запалняем массив строк словами
        cin>>a[i];                  //
 
 
    for (int i=0;i<x;i++)
        if (a[i].size()>str.size()*2)
        {
                if (a[i].find(revstr)>= 4)       // find - возвращает индекс 1ого символа, подстроки равной str , т.е. условие if выполняется только если str будет стоять вначале a[i]
                {
                    if (a[i].find(str)==0)          // find - возвращает индекс 1ого символа, подстроки равной str , т.е. условие if выполняется только если str будет стоять вначале a[i]
                    a[i]=string(a[i],str.size());   // инициализируем a[i] , самим собой же начиная с позиции str.size() - т.е. исключая подстроку str
                cout<<"\nслово с перевернутой подстркой:\n"<<a[i]<<endl;
                b.push_back(a[i]);      // добавляем в контейнер слово a[i]
                counter++;              // увеличиваем счетчик слов
                }
            if (a[i].find(str)==0)          // 
            a[i]=string(a[i],str.size());   //
        }
 
//выводим все слова без подстроки
cout<<endl<<"Удаляем из всех введённый строк подстроку "<<str<<" учитывая что длинна слова превышает длину подстроки в 2 раза:\n";
    for (int i=0;i<x;i++)
    cout<<a[i]<<endl;
 
sort(b.begin(),b.end());        // сортировка слов в векторе b
    for (int i=0;i<counter;i++) // 
    {
    mainStr+=b[i]+' ';
    }
 
cout<<"\nПредложение со словами, содержащими перевёрнутую подстроку:\n"<<mainStr<<endl;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2014, 09:12     итератор
Посмотрите здесь:

C++ Итератор С++
итератор C++
Итератор!!!!! C++
C++ итератор
Итератор ? C++
Итератор C++
итератор C++
Итератор C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 09:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru