Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Вычислите площадь круга, если известен его радиус Здравствуйте. Помогите, пожалуйста, написать программу: Вычислите площадь круга, если известен его радиус. Программа должна быть написана с использованием классов. Заранее спасибо. https://www.cyberforum.ru/ cpp-beginners/ thread822118.html C++ написать и протестировать функцию которая по заданному натуральному числу определяет количество цифр в нем и их сумму
если есть желание пожалуйста напишите подробно.... сильно слаб в этом
C++ Чтение из файла Не могу найти ссылки на чтение из файла в стиле C и C++. Дайте пожалуйста ссылки на вашем форуме! https://www.cyberforum.ru/ cpp-beginners/ thread822086.html C++ ПРоблема со значениями массива https://www.cyberforum.ru/ cpp-beginners/ thread822075.html
Пишу программу, в ней есть массив, значения которого задаются рандомно от 1 до 9. Когда вызывается функция, определяющая среднее значение, то сумма этих значений всегда равна -858992948. Помогите найти ошибку #include<iostream> #include<stdlib.h> #include<time.h> using namespace std; void srednee (const int , int); //void mediana (const int , int); //void moda (const int , int , int);...
Для каждого массива определить номер столбца с наибольшим количеством положительных элементов. C++
Использование функций, возвращающих одно значение. Даны целочисленные массивы A, B. Для каждого массива определить номер столбца с наибольшим количеством положительных элементов. Добавлено через 15 минут #include <iostream> #include <conio.h> #include <stdlib.h> int main() { int i, j;
C++ Перегрузка = https://www.cyberforum.ru/ cpp-beginners/ thread822041.html
Прошу помощи! Нужно запихать эту функцию в перегрузку = Вот функция void CopyString(const char* src, char* dst) //копирование строки { while(*dst++ = *src++); } Вот метод перегрузки, где используется эта функция
C++ Не отображается дробное число в С++ Почему я ввёл 7, 481 галлонов, оно посчитало как 7, 481, а написало 7? #include <iostream> using namespace std; int main() { float galoons, foots; cin>>galoons; foots = galoons/7,481; cout<<foots<<" futov"<< endl; https://www.cyberforum.ru/ cpp-beginners/ thread822028.html Функция, которая возвращает индекс первого элемента C++
Дан массив, упорядоченный по убыванию { 16, 13, 12, 8,5,4,1,-1,-2,-5}. Написать функцию, которая возвращает индекс первого элемента, меньшего числа N, которое передается в эту функцию в качестве параметра. Если такого элемента нет, функция должна возвращать -1.
C++ Нумерация месяца https://www.cyberforum.ru/ cpp-beginners/ thread822023.html
Доброго дня. Спорим с коллегой с какого числа начинать нумеровать месяца с 0 или с 1. Хотелось бы услышать мнения на этот счет
C++ криво работает коеструктор копии производного класса #include <iostream> using namespace std; #include <conio.h> class building { protected: int **A, level, flat; public: building(){}; building(int l, int f); https://www.cyberforum.ru/ cpp-beginners/ thread822016.html
Ханойская башня- тесты C++
Переместить m дисков с одного из трех стержней на другой, соблюдая: 1) диски можно перемещать с одного стержня на другой только по одному; 2) нельзя класть больший диск на меньший. Вход: текстовый файл, в котором записано число m. Выход: текстовый файл, описывающий перемещения дисков. Пример: in.txt: 2; out.txt: 1->2; 1->3; 2->3 Тестирование: протестировать программу на следующих данных...
C++ как усовершенствовать студ.актив при помощи С++ Учусь на первом курсе, если честно, не особо смыслю в программировании :) Веду активную жизнь, состою в студенческом активе, по этому поводу препод меня подкалывает постоянно!Так вот, можете подсказать, как усовершенствовать студ.актив при помощи С++ :) Жду самых интересных идей!Заранее спасибо! https://www.cyberforum.ru/ cpp-beginners/ thread821978.html
Заблокирован
30.03.2013, 14:55 0

Найти наибольшее общее слово - C++ - Ответ 4328612

30.03.2013, 14:55. Показов 992. Ответов 3
Метки (Все метки)

Ответ

fscanf - считывает что-угодно до пробела. Если это слово - в формате указываем "%s"

Добавлено через 25 минут
Алгоритм такой:
1. Создаем файл word1.dat из уникальных слов текста file1.dat, для чего:
1) достаем слово из файла;
2) чистим его от "налипших" точек-запятых;
3) приводим к прописным буквам (tolower);
4) проверяем ,есть ли оно уже в word1.dat, если нет - записываем.
2. Аналогично создаем word2.dat
3. Находим общие слова в word1.dat и word2.dat. Записываем их в common.dat
4. Проходим по common.dat, находим самое длинное слово, любуемся на него на консоли )

Добавлено через 21 час 54 минуты
Если в плюсах, тогда так:

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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
//Two files of texts are given. Find the longest common word which both of them contain.
 
#include <iostream>
#include <fstream>
using namespace std;
 
//--------------------------------------------------------------------------------------
//function checks if the given character is a delimiter
//returns 1 if it is, 0 - if not
//--------------------------------------------------------------------------------------
int isDelimiter(char c)
{   int i=0;
    char delimiters [] = {' ','.',',','-',':',';','!','?',
                        '(',')','{','}','[',']','<','>','\'','"'};
    while(delimiters[i])
        if(c == delimiters[i++])
            return 1;
    return 0;
}
 
//--------------------------------------------------------------------------------------
//procedure creates list of unique words found in the given file
//the list is kept in another file
//--------------------------------------------------------------------------------------
void listOfWords(fstream &fText, const char *fWordsName)
{   char word[50], compare[50];
    int i, cur, onlyDelims, isIn;
    fstream fWords;
    
    fWords.open (fWordsName, fstream::in|fstream::out|fstream::trunc);
    if(!fWords)
    {   cout<<"Error creating file for words\n";
        cin.get();
        exit(1);
    }
 
    while(fText)
    {   fText>>word;
 
        cur = 0;    i=0;    onlyDelims = 0;
        while(word[cur] && isDelimiter(word[cur]))
            cur++;
        if (cur == strlen(word))
            onlyDelims = 1; //the whole word of delimiters, to be ignored
    
    if(!onlyDelims)
      { //peel from left
         while (word[i+cur])
            word[i++] = word[i+cur];
        word[i] = '\0';
        
        //peel from right
        i = strlen(word)-1;
        while(i>-1 && isDelimiter(word[i]) )
            word[i--] = '\0';
        
        //tolower
        i = 0;
        while (word[i])
            word[i++] = tolower(word[i]);
 
        //word processed -> is unique?
        isIn = 0;
        fWords.seekg(0,fWords.beg);
        while(fWords)
        {   fWords>>compare;
            if(strcmp(compare,word)==0)
            {   isIn = 1;
                break;
            }
        }
        fWords.clear(); //cleaning eof()
        
        //word processed and unique-> out
        if(!isIn)
        {   fWords.seekp(0,fWords.end);
            fWords<<word<<"\n";
        }
      }//if
    }//while
    fWords.close();
}
 
//--------------------------------------------------------------------------------------
//procedure finds common words in the two given files with lists of words
//the list of common words is kept in another file
//--------------------------------------------------------------------------------------
void findCommons(const char *fW1Name, const char *fW2Name, const char *fCommonName)
{   fstream fCommon, fW1, fW2;
    
    fCommon.open (fCommonName, fstream::out|fstream::trunc);
    fW1.open (fW1Name, fstream::in);
    fW2.open (fW2Name, fstream::in);
 
    if(!(fCommon && fW1 && fW2))
    {   cout<<"Error processing files for common words\n";
        cin.get();
        exit(1);
    }
 
    char word1[50], word2[50];
 
    while(fW1)
    {   fW1>>word1;
        fW2.seekg(0,fW2.beg);
        while(fW2)
        {   fW2>>word2;
            if(strcmp(word1,word2)==0)
                fCommon<<word1<<"\n";
        }
        fW2.clear();
    }
 
    fCommon.close();
    fW1.close();
    fW2.close();
}
 
//--------------------------------------------------------------------------------------
//function returns the longest word in the given file with 
//list of words
//--------------------------------------------------------------------------------------
char *findTheLongestWord(const char *fName)
{   fstream f;
    f.open(fName, fstream::in);
 
    if(!f)
    {   cout<<"Error opening file\n";
        cin.get();
        exit(1);
    }
 
    char word[50], res[50];
    unsigned int max = 0;
    while(f)
    {   f>>word;
        if(strlen(word)>max)
        {   max = strlen(word);
            strcpy(res,word);
        }
    }
    f.close();
 
    char *back = new char[strlen(res)];
    strcpy(back,res);
    return back;
}
 
//--------------------------------------------------------------------------------------
//MAIN
//--------------------------------------------------------------------------------------
int main()
{   fstream f1,f2;
    f1.open ("file1.dat", fstream::in);
    f2.open ("file2.dat", fstream::in);
    
    if( !(f1 && f2))
    {   cout<<"Error opening files with texts\n";
        cin.get();
        exit(1);
    }
 
    listOfWords(f1,"word1.dat");
    listOfWords(f2,"word2.dat");
    f1.close();
    f2.close();
 
    findCommons("word1.dat", "word2.dat", "common.dat");
    cout<< "The longest word found in the both files: "<<findTheLongestWord("common.dat");
    
    cin.get();
    return 0;
}
Здесь решены многие стандартные подзадачи, часто встречающиеся при обработке строк/слов, а также при работе с файловыми потоками.

P.S. Файлы file1.dat и file2.dat создайте заранее )

Вернуться к обсуждению:
Найти наибольшее общее слово C++
2
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.03.2013, 14:55
Готовые ответы и решения:

Найти общее слово в string
Всем доброго времени суток, уважаемые форумчани! Как сравнить два string на предмет общего слова?...

Найти самое длиное общее слово в строках
Дано две строки. Нужно найти самое длиное общее слово в строках Например, - Привет, меня зовут...

Найти самое длинное общее слово двух заданных предложений
Помогите, пожалуйста, написать программу которая будет находить самое длинное общее слово из 2-х...

Найти самое длинное общее слово для двух заданных текстов
Найти самое длинное общее слово для двух заданных текстов..причем вводимый текст не хранить....

3
30.03.2013, 14:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.03.2013, 14:55
Помогаю со студенческими работами здесь

Найти слово, содержащее наибольшее количество символов
Ввести с клавиатуры одномерный строковый массив и найти слово, содержащее наибольшее количество...

Найти слово содержащее наибольшее количество цифр
Нужно напечатать слово, содержащее наибольшее количество цифр и ещё одно слово с наибольшим...

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

Найти в тексте слово, содержащее наибольшее количество гласных
выкладываю код. задача проги-найти в тексте слово, содержащее наибольшее количество гласных, и...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru