Другие языки программирования и технологии
Написать программу в С++ В тексте Найти слово, которое встречается в тексте максимальное количество раз.
на пишите код пожалуйся
Вот держи. http://ideone.com/RwiN9m
Иван Б
спс можешь обьяснить ?
#include <iostream>
#include <string>
#include <sstream>
#include <map>
#include <algorithm>
using namespace std;
typedef map<wstring, unsigned> container;
typedef map<wstring, unsigned>::iterator element;
typedef pair<wstring, unsigned> 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();
}
#include <string>
#include <sstream>
#include <map>
#include <algorithm>
using namespace std;
typedef map<wstring, unsigned> container;
typedef map<wstring, unsigned>::iterator element;
typedef pair<wstring, unsigned> 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();
}
Вот ещё. Час писал. )
#include <iostream>
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 <iostream>
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;
}
Иван Б
обьясни что программу пожалуйста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;
что делает эта часть??
<< 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 "stdafx.h"
#include
#include
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(0, "");
ifstream fid("File.txt");
if (!fid.is_open()) {
cout << "Не удалось открыть файл. "<< endl;
system("pause");
return -1;
}
char STR[1000];
const int SZ = 10000;
char *DICT[SZ];
int COUNT[SZ];
memset(DICT, 0, SZ*sizeof(DICT[0]));
memset(COUNT, 0, SZ*sizeof(COUNT[0]));
int WORD_COUNT = 0;
do {
fid >> STR;
bool flPRESENT = false;
for (int i = 0; i< WORD_COUNT; i++) {
if (strcmp(DICT[i], STR) == 0) {
COUNT[i]++;
flPRESENT = true;
break;
}
}
if (!flPRESENT) {
DICT[WORD_COUNT] = new char[strlen(STR)+1];
memcpy(DICT[WORD_COUNT], STR, strlen(
#include "stdafx.h"
#include
#include
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(0, "");
ifstream fid("File.txt");
if (!fid.is_open()) {
cout << "Не удалось открыть файл. "<< endl;
system("pause");
return -1;
}
char STR[1000];
const int SZ = 10000;
char *DICT[SZ];
int COUNT[SZ];
memset(DICT, 0, SZ*sizeof(DICT[0]));
memset(COUNT, 0, SZ*sizeof(COUNT[0]));
int WORD_COUNT = 0;
do {
fid >> STR;
bool flPRESENT = false;
for (int i = 0; i< WORD_COUNT; i++) {
if (strcmp(DICT[i], STR) == 0) {
COUNT[i]++;
flPRESENT = true;
break;
}
}
if (!flPRESENT) {
DICT[WORD_COUNT] = new char[strlen(STR)+1];
memcpy(DICT[WORD_COUNT], STR, strlen(
Похожие вопросы
- Напишите программу, которая находит в массиве количество элементов, равных заданному значению X .
- Как сделать программу которая при вводе текста, удаляет из текста все слова, содержащие букву «я». (PascalABC)
- напишите программу которая находит минимальный и максимальный элементы матрицы и их индексы
- Написать программу на Visual BasicВ каждом слове текста замените "а" на букву "е", если "а" стоит начетном месте, и заме
- Написать программу в VBA:определить во введенном тексте количество слов,начинающиеся с заданной буквы.
- РЕБЯТ!!! Те кто понимает в PascalABC.Надо на нем написать программу и чтобы обязательно задавалось количество лучей!!! спа
- написать программу на ассемблере: найти (в строке) и вывести слово, у которого код первого символа наибольший
- Составить программу С++ В массиве целых чисел с количеством элементов n найти наиболее часто встречающееся число
- Как написать программу на Delphi программа которая бы постоянно висело в памяти и через определенное
- Напишите программу, которая находит максимальное среди чисел, записанных в файле, и выводит результат в другой файл.