Выделить В Тексте Максимальное Слово

TYMON

Member
19.06.2010
11
0
#1
Программа сделана как консоль. Максимальное слово оно ищет, и выводит, а как выделить в тексте (желательно по нажатию пробела, выделяет по очереди каждое)?
C++:
#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();
}