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

Найти самое длинное слово и определить, сколько раз оно встретилось - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 5.00
xexe73
1 / 1 / 0
Регистрация: 27.09.2012
Сообщений: 22
16.10.2012, 14:48     Найти самое длинное слово и определить, сколько раз оно встретилось #1
Программа которая считывает текст из файла,находит самое длинное слово и определяет сколько раз оно встретилось. Ни как не могу разобраться со строками.
С++
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2012, 14:48     Найти самое длинное слово и определить, сколько раз оно встретилось
Посмотрите здесь:

C++ написать программу, которая считывает текст из файла, находит самое длинное слово и определяет сколько раз оно встретилось в тексте
В тексте из файла найти самое длинное слово и определить, сколько раз оно встретилось C++
C++ Найти самое длинное число и опредлить, сколько раз оно встретилось в тексте
C++ Строки. В заданном тексте найти самое длинное слово и самое длинное предложение.
Определить сколько раз встречается в строке самое длинное слово C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
 Аватар для igorrr37
1594 / 1222 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
16.10.2012, 15:36     Найти самое длинное слово и определить, сколько раз оно встретилось #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
#include <iostream>
#include <fstream>
#include <string>
#include <cctype>
 
int main()
{
    std::ifstream ifs("in.txt");
    if(ifs.is_open())
    {
        std::string sword, slongest;
        size_t counter;
        char c;
        for(counter = 0; ifs; )
        {
            ifs.get(c);
            if(isalpha(c) && ifs)
                sword += c;
            else
            {
                if(sword.size() > slongest.size())
                {
                    slongest = sword;
                    counter = 1;
                }
                else if(sword == slongest)
                    ++counter;
                sword.clear();
            }
        }
        std::cout << slongest << " - " << counter << std::endl;
        ifs.close();
    }
    else
        std::cerr << "Unable to open input file" << std::endl;
    return 0;
}
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
16.10.2012, 15:59     Найти самое длинное слово и определить, сколько раз оно встретилось #3
Такой вариант
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
#include <iostream> 
#include <fstream> 
 
int main() 
{   
    char buffer[100]; 
    int size = 0, max = 0, count = 0;
    char word[20];
    std::ifstream infile; 
    infile.open("Text.txt"); 
 
    if(!infile.is_open()) 
       std::cout << "Error  " << std::endl; 
    else  
        while( infile >> buffer) 
        { 
            size = strlen(buffer); 
            if(size > max) 
            { 
                strcpy(word, buffer); 
                count = 1; 
                max = size;
                continue;
            } 
            if(strcmp(word, buffer) == 0)
                count++;
        } 
        infile.close();
        std::cout <<"Max word " << word << std::endl;
        std::cout <<"Count "<< count << std::endl;
}
xexe73
1 / 1 / 0
Регистрация: 27.09.2012
Сообщений: 22
16.10.2012, 18:19  [ТС]     Найти самое длинное слово и определить, сколько раз оно встретилось #4
Цитата Сообщение от David Sylva Посмотреть сообщение
Такой вариант
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
#include <iostream> 
#include <fstream> 
 
int main() 
{   
    char buffer[100]; 
    int size = 0, max = 0, count = 0;
    char word[20];
    std::ifstream infile; 
    infile.open("Text.txt"); 
 
    if(!infile.is_open()) 
       std::cout << "Error  " << std::endl; 
    else  
        while( infile >> buffer) 
        { 
            size = strlen(buffer); 
            if(size > max) 
            { 
                strcpy(word, buffer); 
                count = 1; 
                max = size;
                continue;
            } 
            if(strcmp(word, buffer) == 0)
                count++;
        } 
        infile.close();
        std::cout <<"Max word " << word << std::endl;
        std::cout <<"Count "<< count << std::endl;
}
Обе почему то отказываются работать.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
16.10.2012, 18:22     Найти самое длинное слово и определить, сколько раз оно встретилось #5
xexe73, дайте угадаю. Появляется черное окошко и тут же исчезает?)
Или в чем дело?
xexe73
1 / 1 / 0
Регистрация: 27.09.2012
Сообщений: 22
16.10.2012, 18:32  [ТС]     Найти самое длинное слово и определить, сколько раз оно встретилось #6
Цитата Сообщение от I.M. Посмотреть сообщение
xexe73, дайте угадаю. Появляется черное окошко и тут же исчезает?)
Или в чем дело?
Нет, я чуть подделал под себя,как удобней,и не робит, вот код
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
#include "stdafx.h"
#include <iostream> 
#include <fstream> 
#include <conio.h>
using namespace std;
 
int main() 
{   
    char buffer[100]; 
    int size = 0, max = 0, count = 0;
    char word[20];
    ifstream infile; 
    infile.open("Text.txt"); 
 
    if(!infile.is_open()) 
    cout << "Error  " << std::endl; 
    else  
        while( infile >> buffer) 
        { 
            size = strlen(buffer); 
            if(size > max) 
            { 
                strcpy(word, buffer); 
                count = 1; 
                max = size;
                continue;
            } 
            if(strcmp(word, buffer) == 0)
                count++;
        } 
        infile.close();
        cout <<"Max word " << word << std::endl;
        cout <<"Count "<< count << std::endl;
        _getch();
}
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
16.10.2012, 18:34     Найти самое длинное слово и определить, сколько раз оно встретилось #7
Твой код у меня работает, какой у тебя компилятор и покажи текст ошибки.
xexe73
1 / 1 / 0
Регистрация: 27.09.2012
Сообщений: 22
16.10.2012, 18:38  [ТС]     Найти самое длинное слово и определить, сколько раз оно встретилось #8
Ошибки нет,всё запускается. В поле где,как я понимаю, должен выводиться текст,идут непонятные символы. Программа не находит ни одного слова. Выдаёт ошибку как прописано в коде.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
16.10.2012, 18:44     Найти самое длинное слово и определить, сколько раз оно встретилось #9
Цитата Сообщение от xexe73 Посмотреть сообщение
ет, я чуть подделал под себя,как удобней,и не робит, вот код
xexe73, в чем это проявляется?

Не по теме:

что ж вы как на допросе-то? это же в ваших интересах как можно быстрее устранить проблему. В итоге вы 2 сообщения подряд пишите, вообще говоря, ни о чем



Добавлено через 4 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if(!infile.is_open())
{
   cout << "Error  " << std::endl;
}
else
{
   while( infile >> buffer) 
   {
      //...
   }
   infile.close();
   cout <<"Max word " << word << std::endl;
   cout <<"Count "<< count << std::endl;
}
_getch();
Перепишите код так.
Если на экран будет выдаваться "Error ", значит он не видит ваш файл
xexe73
1 / 1 / 0
Регистрация: 27.09.2012
Сообщений: 22
16.10.2012, 18:51  [ТС]     Найти самое длинное слово и определить, сколько раз оно встретилось #10
Да,пишет ошибку,а нельзя с клавиатуры в программе выводить текст, чтоб уже в нём искалось?
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
16.10.2012, 18:53     Найти самое длинное слово и определить, сколько раз оно встретилось #11
В проекте создай текстовый файл.
xexe73
1 / 1 / 0
Регистрация: 27.09.2012
Сообщений: 22
16.10.2012, 21:08  [ТС]     Найти самое длинное слово и определить, сколько раз оно встретилось #12
Я не понимаю как. Я программировании несколько недель всего.

Добавлено через 2 часа 12 минут
Как её доработать то,чтоб она слово выводила.
igorrr37
 Аватар для igorrr37
1594 / 1222 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
16.10.2012, 21:20     Найти самое длинное слово и определить, сколько раз оно встретилось #13
напиши в программе не "Text.txt", а "c:/Text.txt", соответственно файл Text.txt создай на диске с:/
xexe73
1 / 1 / 0
Регистрация: 27.09.2012
Сообщений: 22
16.10.2012, 21:36  [ТС]     Найти самое длинное слово и определить, сколько раз оно встретилось #14
Спасибо всем,сделал
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2012, 21:41     Найти самое длинное слово и определить, сколько раз оно встретилось
Еще ссылки по теме:

Строки. Определить , сколько раз встречается в ней самое длинное слово C++
C++ Определить, сколько раз введенное с клавиатуры слово встретилось в файле
Найти в файле самое короткое слово и подсчитать, сколько раз оно используется C++

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

Или воспользуйтесь поиском по форуму:
David Sylva
16.10.2012, 21:41     Найти самое длинное слово и определить, сколько раз оно встретилось
  #15

Не по теме:

Молодец

Yandex
Объявления
16.10.2012, 21:41     Найти самое длинное слово и определить, сколько раз оно встретилось
Ответ Создать тему
Опции темы

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