Форум программистов, компьютерный форум CyberForum.ru

Написать программу которая в текстовом файле будет искать слова с наибольшим количеством заданны букв - C++

Восстановить пароль Регистрация
 
exwingold
0 / 0 / 0
Регистрация: 25.06.2013
Сообщений: 10
25.06.2013, 08:51     Написать программу которая в текстовом файле будет искать слова с наибольшим количеством заданны букв #1
есть задача по с++
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.06.2013, 08:51     Написать программу которая в текстовом файле будет искать слова с наибольшим количеством заданны букв
Посмотрите здесь:

Найти в тексте все слова с наибольшим количеством гласных букв русского алфавита C++
C++ Написать программу, которая будет подсчитывать количество гласных букв в строке, введенной с клавиатуры.
Написать программу, которая считывает текст из файла и записывает в новый файл слова, короче 5 букв C++
C++ Вывод слова с наибольшим количеством гласных букв
Splay-tree (написать программу, которая будет искать в файле сущности (целые числа) и заносить их в дерево) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
25.06.2013, 08:53
  #2

Не по теме:

Цитата Сообщение от exwingold Посмотреть сообщение
есть задача по с++
У меня тоже есть задача даже тьма их у меня есть, но не отдам никому

exwingold
0 / 0 / 0
Регистрация: 25.06.2013
Сообщений: 10
25.06.2013, 09:07  [ТС]     Написать программу которая в текстовом файле будет искать слова с наибольшим количеством заданны букв #3
я асолютный новичек, не откажите в помощи...
надо написать программу которая в текстовом файле будет искать слова с наибольшим количеством заданны букв

Добавлено через 4 минуты
господа не презирайте меня я только познаю богатый мир программирования
отзовитесь кто нибудь

Добавлено через 41 секунду
уважаемый Croessmah откликнитесь плиз...

Добавлено через 3 минуты
алле
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,863
Записей в блоге: 2
Завершенные тесты: 1
25.06.2013, 09:24     Написать программу которая в текстовом файле будет искать слова с наибольшим количеством заданны букв #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <fstream>
#include <algorithm>
#include <string>
#include <vector>
#include <iterator>
int main(){
    std::string tempWord;
    std::vector< std::string > resultWords;
    char findSymbol;
    std::cout<<"Input symbol ->";
    std::cin>>findSymbol;
    std::ifstream inFile("input.txt");
    size_t countMax=0;
    while(inFile>>tempWord){
        size_t tempCount=std::count(tempWord.begin(),tempWord.end(),findSymbol);
        if(tempCount>=countMax){
            if(tempCount!=countMax){
                resultWords.clear();
                countMax=tempCount;
            }
            resultWords.push_back(tempWord);
        }
    }
    std::copy(resultWords.begin(),resultWords.end(),std::ostream_iterator< std::string >(std::cout,"\n"));
}
Добавлено через 33 секунды

Не по теме:

Цитата Сообщение от exwingold Посмотреть сообщение
алле
это не баня

exwingold
0 / 0 / 0
Регистрация: 25.06.2013
Сообщений: 10
25.06.2013, 09:38  [ТС]     Написать программу которая в текстовом файле будет искать слова с наибольшим количеством заданны букв #5
уважаемый Croessmah
а как осуществить то же самое с несколькими произвольными символами-буквами, при условии что в слове они находятся одновременно...
прости мне моё невежество и назойливость
и, еще раз простите
вы использовали не знакомые мне библиотеки
как реализовать все это языком НАЧИНАЮЩЕГО-новичка в великом программерском деле
, так сказать не столь элегантным способом ...
в любом случае поклон вам низкий за вашу отзывчивость...
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.06.2013, 09:43     Написать программу которая в текстовом файле будет искать слова с наибольшим количеством заданны букв #6
Цитата Сообщение от exwingold Посмотреть сообщение
как реализовать все это языком НАЧИНАЮЩЕГО

Не по теме:

типа агу, бибика, кака,..?

exwingold
0 / 0 / 0
Регистрация: 25.06.2013
Сообщений: 10
25.06.2013, 10:01  [ТС]     Написать программу которая в текстовом файле будет искать слова с наибольшим количеством заданны букв #7
я имел в виду просто попроще

Добавлено через 12 минут
господа ГУРУ С++ простите за грубую лесть
просто позарез нужно
я понимаю что возможно где то некорректен по отношению к вам
но если можно выразится эт вопрос жизни и смерти....

Добавлено через 5 минут
уважаемый Croessmah

прошу вас откликнитесь еще раз пожалуйста........
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
25.06.2013, 10:04     Написать программу которая в текстовом файле будет искать слова с наибольшим количеством заданны букв #8
Если я правильно понял задание:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
#include <iterator>
#include <functional>
 
using namespace std;
 
int main()
{
    const string tokens = "abc";
    ifstream text("text.txt");
    if (!text.good()) return -1;
    string word;
    pair<string, int> longest {"", 0};
    
    while (text >> word) {
        int x = count_if( begin(word), end(word), [&tokens](char c){
                return any_of( begin(tokens), end(tokens), bind2nd( equal_to<char>(), c ) ); } );
        if (x > longest.second) longest = {word, x};
    }
 
    text.close();
    cout << longest.first << ", " << longest.second;
    return 0;
}
exwingold
0 / 0 / 0
Регистрация: 25.06.2013
Сообщений: 10
25.06.2013, 10:12  [ТС]     Написать программу которая в текстовом файле будет искать слова с наибольшим количеством заданны букв #9
простите усважаемый @Olivеr,
но ваш код не работает (

Добавлено через 1 минуту
мне триндец....................................................................
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,863
Записей в блоге: 2
Завершенные тесты: 1
25.06.2013, 10:36     Написать программу которая в текстовом файле будет искать слова с наибольшим количеством заданны букв #10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>//<cstdio>
#include <fstream>//<cstdio>
#include <cstring>
 
int getCount(char * str, char findChar){
    int tempCount=0;
    for(;*str;++str)
        tempCount += (*str==findChar);
    return tempCount;
}
 
int isCorrect(char * str, char * findStr){
    int tempCount=0;
    for(;*findStr;++findStr){
        int rv=getCount(str,*findStr);
        if(!rv)
            return 0;
        tempCount+=rv;
    }
    return tempCount;
}
 
int main(){
    char tempWord[256];
    char resultWords[256][256];
    char findSymbols[256];
    int countWords=0;
    int countMax=0;
    std::cout<<"Input symbols ->";//printf("Input symbols");
    std::cin>>findSymbols;//scanf("%s",findSymbols);
    std::ifstream inFile("input.txt");//FILE * inFile = fopen("input.txt","r");
    while(inFile>>tempWord){//while(!feof(inFile)){
        //fscanf (inFile, "%s", tempWord);
        int tempCount=isCorrect(tempWord,findSymbols);
        if(tempCount >= countMax && tempCount>0){
            if(tempCount!=countMax){
                countWords=0;
                countMax=tempCount;
            }
            strcpy(resultWords[countWords++],tempWord);
        }
    }
    if(countWords>0){
        for(int i=0;i<countWords;++i)
            std::cout<<resultWords[i]<<std::endl;//printf("%s\n",resultWords[i]);
    }else{
        std::cout<<"0 words"<<std::endl;//printf("%s\n",resultWords[i]);
    }
    //fclose(inFile);
}
Слова, в которых присутствуют ВСЕ искомые символы и в самом большом количестве. Не проверял.
Искомые символы вводятся одной строкой без пробелов и других символов-разделителей(табуляция, перенос строки)

Добавлено через 8 минут
ах, да, искомые символы еще должны быть уникальны
exwingold
0 / 0 / 0
Регистрация: 25.06.2013
Сообщений: 10
25.06.2013, 11:08  [ТС]     Написать программу которая в текстовом файле будет искать слова с наибольшим количеством заданны букв #11
реально спасибо великое@Croessmah,

Добавлено через 18 минут
и соовсем уже последняя просьба уважаемый @Croessmah,
не могли бы вы поподробнее (если можно по русски) прокомментировать строки кода
мне не все в нем понятно

прошу прощения еще раз, но вы единственный ЧЕЛОВЕК кто не остался глухи к просьбам
начинающего программиста
и возможно именно благодаря вам и вашему участию
из "невзрачной гусеницы" новичка вылупится великолепный экземпляр "бабочки - Князь тьмы" - программиста
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,863
Записей в блоге: 2
Завершенные тесты: 1
25.06.2013, 11:36     Написать программу которая в текстовом файле будет искать слова с наибольшим количеством заданны букв #12
Цитата Сообщение от exwingold Посмотреть сообщение
не могли бы вы поподробнее (если можно по русски) прокомментировать строки кода
мне не все в нем понятно
учтите, что по моему описанию коня чаще всего вырисовывается крокодил
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//Варианты с Си'ными функциями были удалены чтобы не запутаться в комментах. Суть одна и та же
#include <iostream>
#include <fstream>
#include <cstring>
 
//Функция возвращает количество вхождений символа findChar в строку str
int getCount(char * str, char findChar){
    int tempCount=0;//Количество вхождений
    for(;*str;++str)//Цикл до тех пор, пока не дойдем до завершающего нуля
        tempCount += (*str==findChar);//Если текущий символ равен искомому, то к количеству прибавляется значение true(1), иначе - false(0)
    return tempCount;//Возвращаем количество вхождений
}
 
//Функция возвращает ноль, если строка не удовлетворяет требованияю "каждый символ findStr входит в str минимум один раз"
//Функция возвращает сумму количества вхождений каждого символа из findStr в str
int isCorrect(char * str, char * findStr){
    int tempCount=0;//Суммарное колличество вхождений
    for(;*findStr;++findStr){//проходим по всем символам строки findStr
        int rv=getCount(str,*findStr);//определям количество вхождений символа *findStr в str
        if(!rv)//Если количество вхождений == нулю, то значит символ не входит в строку
            return 0;//Поэтому выходим из функции возвращая 0
        tempCount+=rv;//Если же символ входит в строку, тогда прибавляем количество вхождений этого символа к общей сумме
    }
    return tempCount;//Возвращаем всю сумму
}
 
int main(){
    char tempWord[256]; //Массив для хранения считанного из файла слова (255 символов плюс ноль)
    char resultWords[256][256];//Массив для хранения подходящих слов (256 слов по 255 символов+нулевой)
    char findSymbols[256];//Массив для хранения искомых символов (255 символов плюс ноль)
    int countWords=0;//Кол-во найденных слов
    int countMax=0;//Максимум символов
    std::cout<<"Input symbols ->";//Вывод сообщения
    std::cin>>findSymbols;//Получаем символы, которые будем искать
    std::ifstream inFile("input.txt");//Открываем фаил input.txt
    while(inFile>>tempWord){//Считываем из файла в tempWord(считывание будет от текущей позиции в файле до первого разделителя(пробел, табуляция, перенос строки) и если считывание успешно, то заходим в цикл.
        int tempCount=isCorrect(tempWord,findSymbols);//Проверяем считанное слово на корректность, число вхождений присваиваем переменной tempCount
        if(tempCount >= countMax && tempCount>0){//Если число корректно (tempCount>0) И число вхождений больше или равно максимальному количеству вхождений(tempCount >= countMax)
            if(tempCount!=countMax){//Если текущее число вхождений не равно максимальному
                countWords=0;//Обнуляем количество найденых слов, т.к. найден новый максимум и старые слова уже не подходят
                countMax=tempCount;//Максимуму присваиваем текущее количество вхождений
            }
            strcpy(resultWords[countWords++],tempWord);//Копируем найденное слово в наше словохранилице, увеличивая при этом переменную, хранящую количество найденных слов
        }
    }
    if(countWords>0){//Если нашли хотябы одно слово, тогда
        for(int i=0;i<countWords;++i)//Цикл по всем найденным словам
            std::cout<<resultWords[i]<<std::endl;//Вывод слова
    }else{//если же слов не найдено, тогда
        std::cout<<"0 words"<<std::endl;//Выводим сообщение
    }
    //Ну и закрытие файла при использовании Си'шных функций. В C++ варианте с потоками всё само закроется.
    //fclose(inFile);
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.06.2013, 11:39     Написать программу которая в текстовом файле будет искать слова с наибольшим количеством заданны букв
Еще ссылки по теме:

Програма которая выводит слова с парным количеством букв C++
C++ Написать программу которая будет искать разные слова из текста
C++ Найти слова с наибольшим количеством гласных букв

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
exwingold
0 / 0 / 0
Регистрация: 25.06.2013
Сообщений: 10
25.06.2013, 11:39  [ТС]     Написать программу которая в текстовом файле будет искать слова с наибольшим количеством заданны букв #13
низкий поклон вам @Croessmah,
Yandex
Объявления
25.06.2013, 11:39     Написать программу которая в текстовом файле будет искать слова с наибольшим количеством заданны букв
Ответ Создать тему
Опции темы

Текущее время: 14:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru