Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2012, 17:05   #1
TYMON
Пользователь
 
Регистрация: 19.06.2010
Сообщений: 80
По умолчанию Выделить в тексте максимальное слово

Максимальное слово оно ищет, и выводит, а как выделить в тексте (желательно по нажатию пробела, выделяет по очереди каждое)?
Код:
#include<iostream>
#include<fstream>
#include<string>
#include<conio>
#include<cstdio>
#include<Windows>
using namespace std;
void SetHighlightedText()
{
 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_INTENSITY);
}
void SetNormalText()
{
 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
}
int main()
{
char s[8000]="";
    printf("--------------------------------------------------------------------------------");
    //Открытие файлов
    FILE *F;
    if((F=fopen("text.dat", "rt")) == NULL)
        {
            printf("Не могу открыть text.dat на чтение.\n");
            return -1;
        }
    char simvol;
    for(int i=0; (simvol=getc(F))!=EOF; i++)
    s[i]=simvol;
    fclose(F);
    printf("Ishodniy tekst:\n\n%s\n\n", s);
    printf("--------------------------------------------------------------------------------");
    //Поиск слов с максимальной длиной символов
    int maxStart , maxLen=0, len=0;
    for(int i=0; i<strlen(s); i++)
    // i номер позиции в строке
    // len текущий показатель длины слова
    // maxLen длина самого длинного слова
    // maxStart номер позиции с которой начинается самое длинное слово
    {
       if(s[i]!=' ' && s[i]!='\n' && i<strlen(s)-1)
        {
            len++;
 
        }
       else
        {
            if(i==strlen(s)-1){len++;i++;}
            if(len>maxLen){maxLen=len; maxStart = i-maxLen;
                          }
            len=0;
        }
    }
    //зная длину самого длинного слова, заного читаем текст из массива s[] 
    printf("\nMaksimalnoe slovo v text.dat:\n\n");
    for(int i=0; i<strlen(s); i++)
    {
 
        if(s[i]!=' ' && s[i]!='\n' && i<strlen(s)-1)
         {
            len++;
         }
        else
         {
            if(i==strlen(s)-1){len++;i++;}
            if(len==maxLen)
             { 
                
                 for(int j=i-maxLen; j<=i; j++)
                 {  
                    printf("%c", s[j]); 
 
                 }
                    printf("\n\n");
             }  
            len=0;
         }
    }
printf("\nKolichestvo simvolov v maksimalnom slove %d.\n", maxLen);
    printf("--------------------------------------------------------------------------------");
    getch();
}
TYMON вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вырезать слово в тексте и вывести его kilogram PHP 4 29.03.2012 18:18
Заменить заданное слово в тексте, находящемся в заданном файле, на другое слово (С++) Lapochka Помощь студентам 6 01.12.2011 14:05
Найти слово в тексте ДмитрийРэй Помощь студентам 8 23.04.2011 19:49
задача на паскале. Выделить 2-е слово в предложении kozapupen Помощь студентам 3 16.06.2009 23:03
Как найти слово в тексте ? geniy Паскаль, Turbo Pascal, PascalABC.NET 2 03.02.2008 21:37