Доброго времени суток уважаемые пользователи этого форума. Кто-то может объяснить или помочь дописать немного программку, за ранее благодарен за любую помощь.
Необходимо сделать следующее, найти корень из найденного самого длинного слова, корень мы вводим сами. Дальше необходимо проверить если в этих двух данных предложениях, встречается а точнее повторяется этот корень и сколько раз.
Вот, пока что наварганил...
Код программы:
Код:
#include <vcl.h>
#include <dos.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#pragma hdrstop
#pragma argsused
char * Rus(const char * Text);
const int ArrayLimit = 255;
char BufferSize[ArrayLimit];
int main(void)
{
// ----
clrscr();
// ----
typedef unsigned int Ui;
char ReadFirstMessage[ArrayLimit],
ReadSecondMessage[ArrayLimit];
char BufferFirstMessage[ArrayLimit],
BufferSecondMessage[ArrayLimit];
char TempBufferMessage[ArrayLimit];
char RootMessage[ArrayLimit];
char *FirstIndex, *SecondIndex;
printf(Rus("1.Введите первое предложение\n "));
gets(ReadFirstMessage);
printf(Rus("2.Введите второе предложение\n "));
gets(ReadSecondMessage);
printf(Rus("\n - Финальные результаты - \n"));
Ui FirstMessageCounter = 0;
FirstIndex = strtok(ReadFirstMessage, " !@#$%^&*()-+,./?|");
while(FirstIndex)
{
if(FirstMessageCounter == 0 || strlen(FirstIndex) > FirstMessageCounter)
{
strcpy(BufferFirstMessage, FirstIndex);
FirstMessageCounter = strlen(FirstIndex);
}
FirstIndex = strtok(NULL, " !@#$%^&*()-+,./?|");
}
printf("\n");
printf(Rus("Самое длинное слово первого предложения "));
printf("[ %s ]\n", BufferFirstMessage);
printf(Rus("Количество букв в этом слове "));
printf("[ %d ]\n", FirstMessageCounter);
printf("/----\n");
Ui SecondMessageCounter = 0;
SecondIndex = strtok(ReadSecondMessage, " !@#$%^&*()-+,./?|");
while(SecondIndex)
{
if(SecondMessageCounter == 0 || strlen(SecondIndex) > SecondMessageCounter)
{
strcpy(BufferSecondMessage, SecondIndex);
SecondMessageCounter = strlen(SecondIndex);
}
SecondIndex = strtok(NULL, " !@#$%^&*()-+,./?|");
}
printf(Rus("Самое длинное слово второго предложения "));
printf("[ %s ]\n", BufferSecondMessage);
printf(Rus("Количество букв в этом слове "));
printf("[ %d ]\n", SecondMessageCounter);
printf("/----\n");
Ui TempMessageCounter;
printf(Rus("Самое длинное слово из двух данных предложений "));
if (FirstMessageCounter > SecondMessageCounter)
{
// ----
//TempMessageCounter = FirstMessageCounter;
TempBufferMessage[ArrayLimit] = BufferFirstMessage[ArrayLimit];
// ----
printf("[ %s ]\n", BufferFirstMessage);
printf(Rus("Количество букв в этом слове "));
printf("[ %d ]\n", FirstMessageCounter);
}
else
{
// ----
//TempMessageCounter = SecondMessageCounter;
TempBufferMessage[ArrayLimit] = BufferSecondMessage[ArrayLimit];
// ----
printf("[ %s ]\n", BufferSecondMessage);
printf(Rus("Количество букв в этом слове "));
printf("[ %d ]\n", SecondMessageCounter);
}
printf("/----\n");
printf(Rus("\n3.Введите корень самого длинного слова, для того чтобы узнать\n"));
printf(Rus("не повторяется ли он в других словах из двух данных предложений\n "));
gets(RootMessage);
// ----
getch();
// ----
return 0;
}
char * Rus(const char * Text)
{
CharToOem(Text, BufferSize);
return BufferSize;
}