Сергей Нестеренко
Сергей Нестеренко

Написать программу в С++ В тексте Найти слово, которое встречается в тексте максимальное количество раз.

на пишите код пожалуйся

LL
Lilya Lilya

Вот ещё. Час писал. )

#include
using namespace std;

void sc(char *b, char *s, int be, int en); // функция для копирования из одной строки в другую с определённой позиции до определённой позиции
bool stcp(char *b1, int l1, char *b2,int l2); // функция сравнения без учёта регистра

int main(){

char str[] = "Hello world. This is World.[hello] 231 Hello They are in the world.";
char buffer1[20], buffer2[20], bufferMax[20];
bool inword = false,inword2 = false; // маркер, показывающий что символ находится в слове
int counter(0),c(0); // счётчик букв в слове
int begin, end, begin2, end2; // начала и концы слов в строке
int max(0); // максимальное количество слов

for(int i(0); str[i]; i++){
if(isalpha(str[i]) && inword == false){ inword = true; begin = i;}
if(!isalpha(str[i]) && i != 0 && isalpha(str[i-1])) {inword = false; end = i-1; sc(buffer1,str,begin,end);
// нашли первый компаранд - слово, в переменной buffer1

for(int j(i+1); str[j]; j++){
if(isalpha(str[j]) && inword2 == false){ inword2 = true; begin2 = j;}
if(!isalpha(str[j]) && isalpha(str[j-1])) {inword2 = false; end2 = j-1; sc(buffer2,str,begin2,end2);
// нашли второй компаранд - слово, в переменной buffer2

//if(!strcmp(buffer1,buffer2)) counter++;} // если слова одинаковы, то увеличиваем счётчик на единицу
if(stcp(buffer1,strlen(buffer1),buffer2,strlen(buffer2))) counter++;}
}

if(counter > max) {max = counter; strcpy(bufferMax,buffer1);}
counter = 0; // обнуляем счётчик

}
}

cout << str << endl;
cout << "bufferMax = " << bufferMax << " Max = " << max+1 << endl;

system("pause > nul");
return 0;
}

void sc(char *b, char *s, int be, int en)
{
int counter(0);
for(int i(be); i <= en; i++)
b[counter++] = s[i];
b[counter] = '\0';
}

bool stcp(char *b1, int l1, char *b2, int l2)
{
if(l1 != l2) return false;
for(int i(0); b1[i]; i++){
if(tolower(b1[i]) != tolower(b2[i])) return false;
}
return true;
}

ЕА
Евгений Антонов

#include
#include
#include
#include
#include
using namespace std;
typedef map container;
typedef map::iterator element;
typedef pair counter;
class compare {
public: bool operator()(const counter& a, const counter& b)const { return a.second < b.second; }
};
int main() {
wstring str = L"Ехал Грека через реку видит Грека в реке рак сунул Грека руку в реку рак за руку Греку цап";
wistringstream iss(str);
container box;
for (wstring word; iss >> word; ++box[word]);
compare comp;
element result = max_element(box.begin(), box.end(), comp);
wcout.imbue(locale(".866"));
wcout << result->first << endl;
cin.sync();
cin.get();
}

Похожие вопросы
помогите написать программу. В последовательности из n целых чисел найти число с максимальным количеством цифр.
помогите написать программу. Найти 2 максимальных элемента квадратной матрицы на Pascal.
Помогите, пожалуйста, написать программу на java, подсчитывающую количество слов в передаваемой строке
Написать программу. Написать программу поиска минимального и максимального элементов матрицы
Подскажите программу-загрузчик, которая может текст, слова в запускаемой проге?
С++: Сделать программу, которая после ввода текста ищет слова с непарным количеством букв.... Заранее, спасибо огромное.
Дан текст на русском языке. Найти количество букв ‘о’ и ‘а’. Найти количество букв ‘о’ и ‘а’.
Написать метод, который находит количество раз, сколько заданный символ встречается в заданной строке.
Помогите написать текст программы в Visual Basic.ПОЖАЛУЙСТА!!!! Написать программу, которая выводит на экран Да или Нет
написать программу для подсчета слов в тексте, помогите пожалуйста. на Turbo C++