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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Amanta
Сообщений: n/a
#1

Найти самое длинное слово в файле - C++

10.05.2013, 11:13. Просмотров 620. Ответов 6
Метки нет (Все метки)

В заданном тексте (файле) найти самое длинное слово и самую длинную фразу и вывести их на
экран. (C++)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2013, 11:13     Найти самое длинное слово в файле
Посмотрите здесь:
C++ Найти самое длинное слово в файле
Найти самое длинное слово в файле C++
C++ В файле найти самое длинное слово
C++ Нужно найти самое длинное слово в файле
Найти самое длинное слово в файле и определить количество его вхождений C++
C++ Строки. В заданном тексте найти самое длинное слово и самое длинное предложение.
C++ Найти в тексте самое длинное слово и самое длинное предложение
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Olivеr
412 / 408 / 13
Регистрация: 06.10.2011
Сообщений: 831
10.05.2013, 13:18     Найти самое длинное слово в файле #2
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
#include <iostream>
#include <algorithm>
#include <fstream>
#include <iterator>
 
using namespace std;
 
int main()
{
    ifstream text("text.txt");
    istream_iterator<string> is(text);
    string longest_word;
    string::size_type len = 0, l;
    while (is != istream_iterator<string>()) {
        l = static_cast<string>(*is).size();
        if ( l > len ) {
            len = l;
            longest_word = *is;
        }
        ++is;
    }
    text.close();
    cout << "longest word is " << longest_word;
 
    text.open("text.txt");
 
    istreambuf_iterator<char> iis(text);
    string longest_phrase, _longest;
 
    while (iis != istreambuf_iterator<char>()) {
        if ( *iis != '.' ) {
            _longest.push_back(*iis);
            ++iis;
            continue;
        }
        if ( _longest.size() > longest_phrase.size() )
            swap(longest_phrase, _longest);
        _longest.clear();
        ++iis;
    }
    text.close();
    longest_phrase.push_back('.');
    cout << "\nlongest phrase is " << longest_phrase;
    return 0;
}
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
10.05.2013, 14:40     Найти самое длинное слово в файле #3
Olivеr,Найти самое длинное слово в файле


kitiket22, может я невнимательно посмотрел, но Вы темой не ошиблись?
Olivеr
412 / 408 / 13
Регистрация: 06.10.2011
Сообщений: 831
10.05.2013, 19:39     Найти самое длинное слово в файле #4
BumerangSP, самое длинное слово - согласен, а фраза - код опирается на точку в конце предложения. ТС поправит если ему нужно

Переделал:
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
#include <iostream>
#include <algorithm>
#include <fstream>
#include <iterator>
 
using namespace std;
 
int main()
{
    ifstream text("text.txt");
    istreambuf_iterator<char> is(text);
    string longest_word, word;
 
    while (is != istreambuf_iterator<char>()) {
        if ( isalpha(*is) )
            word.push_back(*is);
        else {
            if ( word.empty() ) {
                ++is;
                continue;
            }
            if ( *is == '-' && isalpha( *++is ) ) {
                word.push_back('-');
                word.push_back(*is);
                ++is;
                continue;
            }
            if ( longest_word.size() < word.size())
                longest_word.swap(word);
            word.clear();
        }
        ++is;
    }
    text.close();
 
    cout << "longest word is " << longest_word;
 
    text.open("text.txt");
 
    istreambuf_iterator<char> iis(text);
    string longest_phrase, _longest;
 
    while (iis != istreambuf_iterator<char>()) {
        if ( *iis != '.' && *iis != '?' && *iis != '!' && *iis != '\n') {
            _longest.push_back(*iis);
            ++iis;
            continue;
        }
        else if ( _longest.size() > longest_phrase.size() )
            longest_phrase.swap(_longest);
        _longest.clear();
        ++iis;
    }
    text.close();
    cout << "\nlongest phrase is " << longest_phrase;
 
    return 0;
}
Olivеr
412 / 408 / 13
Регистрация: 06.10.2011
Сообщений: 831
10.05.2013, 19:44     Найти самое длинное слово в файле #5
http://www.cyberforum.ru/attachment....1&d=1368200709
Миниатюры
Найти самое длинное слово в файле  
kitiket22
1 / 1 / 0
Регистрация: 31.01.2013
Сообщений: 4
10.05.2013, 20:13     Найти самое длинное слово в файле #6
Цитата Сообщение от BumerangSP Посмотреть сообщение
Olivеr,Вложение 265606


kitiket22, может я невнимательно посмотрел, но Вы темой не ошиблись?
Действительно ошибся
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2013, 18:49     Найти самое длинное слово в файле
Еще ссылки по теме:
Напечатать самое длинное слово, найденное в текстовом файле C++
Найти самое длинное и самое короткое слово в тексте C++
C++ Найти самое длинное и самое короткое слово в строке
C++ Найти самое короткое и самое длинное слово в строке

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

Или воспользуйтесь поиском по форуму:
Amanta
Сообщений: n/a
24.05.2013, 18:49     Найти самое длинное слово в файле #7
А можно решить ее без итераторов??
Yandex
Объявления
24.05.2013, 18:49     Найти самое длинное слово в файле
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru