Среда, 15.05.2024, 00:46
"I-School" - школа знаний XXI века
     In doing we learn
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
Форма входа
Категории раздела
Пользователь ПК [0]
WEB-дизайн [0]
Программирование [18]
Корзина
Пользователь ПК [0]
WEB-дизайн [0]
Программирование [18]
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Главная » Статьи » Информатика, программирование » Программирование

    Строки С++, указатели
    #include <iostream>
    #include <string>
    #include <fstream>
    using namespace std;
    
    //генерирует подстроку из заданых символов с заданным повторением
    string subStrGen(char* ch,int k)
    {
     string res="";
     for(int i=0;i<k;i++)
     res+=*ch;
     return res;
    }
    
    //считает, сколько раз подстрока входит в строку
    int repNumb(string* str, string* subs)
    {
     int k=0;
     size_t pos=0;
     size_t lenS=str->length();
     size_t lenSb=subs->length();
    
     while(pos!=string::npos) 
     { pos = str->find(*subs); 
     if(pos!=string::npos)
     { k++;
     *str = str->substr(pos+lenSb,lenS-pos-lenSb);
     }
     }
     return k--;
    }
    
    //записывает результаты в файл
    void filing(string* str, string* subs,int r)
    {
     ofstream fout;
     fout.open("results.txt");
     if (fout.is_open())
     { fout <<"Original string:\n";
     fout<<*str<<endl;
     fout<<"Substring specified:\n";
     fout <<*subs<<endl;
     fout<<r<<" substrings found\n";
     fout.close();
     cout<<"File created\n";
     }
     else cout << "Unable to open file";
    }
    
    int main()
    {
     string start, sub, replica;
     char spec;
     int n,rep;
    
     cout<<"Input your string\n";
     getline(cin,start,'\n');
     cout<<"Specify the character\n";
     cin>>spec;
     cout<<"How many times to repeat it?\n";
     cin>>n;
    
     replica=start;
     sub=subStrGen(&spec,n);
     rep=repNumb(&start,&sub);
     
     cout<<rep<<" substrings found\n";
    
     cout<<"Filing the results...\n";
     filing(&replica,&sub,rep);
     
     system("pause");
     return 0;
    }
    
    Категория: Программирование | Добавил: IrineK (15.03.2011)
    Просмотров: 1325 | Теги: обучение C/C++/CLI, обучение English, программирование С++, Киев обучение, задача бесплатно | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Copyright MyCorp © 2024
    Конструктор сайтов - uCoz