Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

С++.Задача на работу с фаилами

29K
26 февраля 2008 года
ведьмочка
8 / / 10.01.2008
срочно
помогите пожалуйста с задачкой

Дан текстовый файл. Найти самое длинное слово среди слов, вторая буква которых есть е. Если таких слов нет вообще, то сообщить об этом.
320
26 февраля 2008 года
m_Valery
1.0K / / 08.01.2007
C++,STL...
Код:
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <string>
#include <set>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    ifstream in("f1.txt");
    istream_iterator<string> ifile(in);
    istream_iterator<string> eos;
    vector<string> coll;
    copy(ifile,eos,inserter(coll,coll.begin()));
    set<string> coll1;
    for(size_t i = 0;i < coll.size();++i){
        if(coll.find("e") == 1){
            coll1.insert(coll);
        }
    }
    if(coll1.empty())
        cout << "There are no words" << endl;
    else
    copy(coll1.begin(),coll1.end(),
        ostream_iterator<string>(cout,","));
    cout << endl;
    string s = *(coll1.begin());
    for(set<string>::const_iterator it = coll1.begin();it != coll1.end();++it){
        if((*it).size() > s.size())
            s = *it;
    }
    cout << s <<" length = " << s.size() << endl;
    return 0;
}
2.0K
26 февраля 2008 года
BroKeR
163 / / 04.05.2006
Как то примерно так.Писал на коленке,потому за правильность не ручаюсь но мысль я думаю ясна...
Код:
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main()
{
    ifstream inFile("filename.txt");
    if (inFile.fail())
    {
        cerr<<"File error"<<endl;
        exit(1);
    }
    string str,str1;
    int len=0,rez=0;
    while (inFile>>str)
    {
         if (str[1]=='e') len=strlen(str.c_str());
         if (rez<len)
         {
               rez=len;
               str1=str;
         }
    }
    if (!rez) cout<<"Слов с буквой 'е' нет!!!"<<endl;
    else cout<<"Самое длинное слово с 'e' "<<str1<<"и имеет длинну "<<rez<<" символов"<<endl;
}


проверил все работает
320
26 февраля 2008 года
m_Valery
1.0K / / 08.01.2007
А не надо на коленках писать,выкладываешь код - проверь.Неправильный результат.А вот так правильный.
 
Код:
...
  if (str[1]=='e')
     len =str.size();
         if (rez < len)
        rez = str.size();
...
2.0K
26 февраля 2008 года
BroKeR
163 / / 04.05.2006
m_Valery А нафига так сложно?????
2.0K
26 февраля 2008 года
BroKeR
163 / / 04.05.2006
Цитата: m_Valery
А не надо на коленках писать,выкладываешь код - проверь.Неправильный результат.А вот так правильный.
 
Код:
...
  if (str[1]=='e')
     len =str.size();
         if (rez < len)
        rez = str.size();
...


в чем разница между str.size() и strlen(str.c_str())????Это первое а второе я проверил и у меня код работает.Так что.И это на мой взгляд проще монстра предложенного тобой.

320
26 февраля 2008 года
m_Valery
1.0K / / 08.01.2007
Во-первых,не надо нервничать.Предложил решение - молодец.Решение хорошее,только найти надо не длину, а слово с н6аибольшей длиной.
Во-вторых,зачем использовать strlen,если string имеет для определения длины и size и length ?
2.0K
26 февраля 2008 года
BroKeR
163 / / 04.05.2006
m_Valeryда я спокоен,про size() банально не подумал(на работе такая термоядерная смесь с и с++),потому что первое пришло в голову,а так они эквиваленты.Если посмотришь программу то увидешь что нашел именно то что надо,слово тоесть...Подправил
320
26 февраля 2008 года
m_Valery
1.0K / / 08.01.2007
Цитата: BroKeR
m_Valeryда я спокоен,про size() банально не подумал(на работе такая термоядерная смесь с и с++),потому что первое пришло в голову,а так они эквиваленты.Если посмотришь программу то увидешь что нашел именно то что надо,слово тоесть...Подправил


Да я все посмотрел.Все правильно.Это я замутил...У меня тоже "термоядерная смесь" на работе...:) Вот и налепил контейнеров.:;)
+1 тебе.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог