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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 5.00
ROFAR
1 / 1 / 0
Регистрация: 30.10.2009
Сообщений: 5
30.10.2009, 13:30     Напечатать самое длинное слово, найденное в текстовом файле #1
ЗДРАВСТВУЙТЕ! подскажите с чего начать в решениие этой задачи ==> "Напечатать самое длинное слово, найденное в текстовом файле", нужно сделать на С, но как незнаю((( буду благодарен любой подсказке! зарание спасиба!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2009, 13:30     Напечатать самое длинное слово, найденное в текстовом файле
Посмотрите здесь:

Поменять местами самое длинное слово и самое короткое слово в тексте C++
Напечатать самое длинное и самое короткое слово в строке C++
C++ Найти самое длинное слово в файле
C++ Строки. В заданном тексте найти самое длинное слово и самое длинное предложение.
C++ Напечатать самое длинное и самое короткое слово в строке
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
30.10.2009, 13:36     Напечатать самое длинное слово, найденное в текстовом файле #2
1. читаешь пословесно.
2. считаешь длину прочитанного слова.
3. запоминаешь его длину.
3.1. если его длина больше длины предыдущего слова, запоминаешь его длину, иначе нет.
ROFAR
1 / 1 / 0
Регистрация: 30.10.2009
Сообщений: 5
30.10.2009, 13:40  [ТС]     Напечатать самое длинное слово, найденное в текстовом файле #3
спс... уже что-то, но я думаю нужно определять длину слова до пробела или точки или запятой и т.д.... так?
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
30.10.2009, 13:42     Напечатать самое длинное слово, найденное в текстовом файле #4
Цитата Сообщение от ROFAR Посмотреть сообщение
я думаю нужно определять длину слова до пробела или точки или запятой и т.д.... так?
Ну да. По разделителям. Их не так то много.
Набросай код, помогу
ROFAR
1 / 1 / 0
Регистрация: 30.10.2009
Сообщений: 5
30.10.2009, 13:49  [ТС]     Напечатать самое длинное слово, найденное в текстовом файле #5
ок... ща буду мудрить... спс тебе niXman

Добавлено через 3 минуты
А как описать массив разделителей? я вот знаю как на Паскале это сделать ->
const razd=[' ','.',',','?','!',':',')','(']; а на Си с этим несталкивался)))
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
30.10.2009, 13:54     Напечатать самое длинное слово, найденное в текстовом файле #6
C
1
char razd[] = {...};
ROFAR
1 / 1 / 0
Регистрация: 30.10.2009
Сообщений: 5
30.10.2009, 14:49  [ТС]     Напечатать самое длинное слово, найденное в текстовом файле #7
Цитата Сообщение от niXman Посмотреть сообщение
C
1
char razd[] = {...};
спс...

Добавлено через 54 минуты
вообще ничего нелезет в голову(((
начало программы написал, а толку 0
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
#include<stdio.h>
#include<conio.h>
#include<string.h>
main()
{ 
   char razd[] = {'.',',',' ','!','?'};
   char c;
   FILE *fp;
 
   // Проверка наличия файла и вывод содержимого файла на экран
   if((fp=fopen("name.txt","r"))==NULL)
   {printf("\n Oshibka otkritiiy faila");getch();return 0;}
   c=getc(fp);
   printf("Sodergimoe faila --> ");
   while(c!=EOF)
   { 
     printf("%c",c);
     c=getc(fp);
   }
 
   fclose(fp);
   getch();
   return 0;
}
помоги, а то ступор конкретный(((
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
30.10.2009, 17:09     Напечатать самое длинное слово, найденное в текстовом файле #8
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
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
#include <fstream>
#include <sstream>
 
int main(int argc, const char** argv) {
    std::string maxstring;
    
    std::ifstream file("test.cpp");
    if ( !file ) {
        std::cerr << "Can`t open file" << std::endl;
        return 1;
    }
    
    while ( !file.eof() ) {
        std::string tmp_str;
        /** читаем строку */
        file >> tmp_str;
        /** если пустая, повторяем */
        if ( tmp_str.empty() ) continue;
        /** находим самое длинное слово */
        if ( tmp_str.length() > maxstring.length() ) {
            maxstring = tmp_str;
        }
    }
    
    std::cout << "max = " << maxstring << std::endl;
 
    return 0;
}
Сейчас разделяет по пробелам. Если этого не достаточно, что нибудь придумаем
ROFAR
1 / 1 / 0
Регистрация: 30.10.2009
Сообщений: 5
30.10.2009, 21:37  [ТС]     Напечатать самое длинное слово, найденное в текстовом файле #9
я так понимаю этот код написан на С++( а я С++ ещё неизучал... так что мне большая половина кода непонятна niXman нельзя ли как нибудь его подогнать под С?

З.Ы. попробовал скомпилировать данный код( ругается на библиотеку <sstream> пишет Unable to open include file 'SSTREAM.h'

Добавлено через 19 минут
вот этот код мне написали в другом месте)))
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
#include <stdio.h>
#include <string.h>
 
int main(int argc, char* argv[])
{
    char bigWord[256], buf[256];
    size_t bigWordLength=0, bufLength;
    FILE *f;
 
    bigWord[0] = '\0';
 
    f = fopen("C:\\test.txt", "r");
    if(f)
    {
        while(fscanf(f, "%255s", buf) != EOF)
        {
            bufLength = strlen(buf);
            if(bufLength > bigWordLength)
            {
                strcpy(bigWord, buf);
                bigWordLength = bufLength;
            }
        }
        if(bigWordLength == 0)
        {
            puts("File is empty");
        }
        else
        {
            printf("Big word: \"%s\" (Length: %u)\n", bigWord, bigWordLength);
        }
        fclose(f);
    }
    else
    {
        puts("Cannot open file");
    }
    getchar();
}
вроде все работает нормально... может этот код каму пригодится ещё...
Но всеравно спасиба тебе niXman огромное, приятно когда твоему вопросу уделяют внимание)

Добавлено через 3 минуты
если никаких дальнейших пожеланий и замечаний небудет, то тему можно закрывать)))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.04.2011, 12:19     Напечатать самое длинное слово, найденное в текстовом файле
Еще ссылки по теме:

C++ Дано предложение. Напечатать самое длинное слово
C++ Напечатать самое длинное и самое короткое слово в строке

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

Или воспользуйтесь поиском по форуму:
mezahaka
2 / 2 / 1
Регистрация: 28.12.2010
Сообщений: 16
17.04.2011, 12:19     Напечатать самое длинное слово, найденное в текстовом файле #10
Метод Редукции
Yandex
Объявления
17.04.2011, 12:19     Напечатать самое длинное слово, найденное в текстовом файле
Ответ Создать тему
Опции темы

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