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

Вывести все слова из файла, содержащие в себе слово red - C++

Восстановить пароль Регистрация
 
Aecttann
 Аватар для Aecttann
6 / 6 / 0
Регистрация: 19.10.2013
Сообщений: 279
30.05.2014, 01:10     Вывести все слова из файла, содержащие в себе слово red #1
Необходимо вывести все слова из файла, содержащие в себе слово red

Вот код:

Кликните здесь для просмотра всего текста
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
#include <iostream>
#include "fstream"
#include <string.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"RUS");
    char red [3] ;
    int i;
 
char   b;
b = 'red';
 
    ifstream file;
    ofstream out;
    file.open("red.txt");
    out.open("out.txt");
 
 
for(i=0;!file.eof();i++)
{
 
    file >> red;
 
    if(red == b)
    cout << red;
    out  << red;
 
}
 
    return 0;
 
file.close();
out.close();
 
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2014, 01:10     Вывести все слова из файла, содержащие в себе слово red
Посмотрите здесь:

Считать текст из файла и вывести на экран только предложения, содержащие введенное с клавиатуры слово C++
Из текстового файла неизвестного размера вывести на экран все предложения, не содержащие запятых C++
Вывести строку, в которой все вхождения первого слова заменены на второе слово C++
Вывести на экран все слова предложения, содержащие в качестве подстроки слово w C++
Вывести на экран все слова, содержащие букву "k" C++
C++ Строки (вывести все слова, содержащие только латинские буквы)
:Вывести все слова предложения, содержащие последнюю букву предыдущего слова не менее 2 раз C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kerry_Jr
Модератор
 Аватар для Kerry_Jr
1940 / 1736 / 606
Регистрация: 14.05.2014
Сообщений: 5,036
Записей в блоге: 1
Завершенные тесты: 5
30.05.2014, 02:32     Вывести все слова из файла, содержащие в себе слово red #2
Цитата Сообщение от Aecttann Посмотреть сообщение
if(red == b)
Попробуй
C++
1
if(strstr(b, red))
Добавлено через 1 час 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
#include <iostream>
#include <fstream>
#include <cstring>
 
int main()
{
    setlocale(LC_ALL, "");
    
    char red[64];
    char b[] = "red";
    
    std::ifstream input("red.txt");
    std::ofstream output("out.txt");
    
    while (!input.eof())
    {
        input >> red;
        if(strstr(red, b) !=  NULL)
        {
            output << red;
            std::cout << red << std::endl;
        }
    }
    input.close();
    output.close();
    
    return 0;
}
В предыдущем сообщении параметры местами перепутал.
Aecttann
 Аватар для Aecttann
6 / 6 / 0
Регистрация: 19.10.2013
Сообщений: 279
30.05.2014, 10:54  [ТС]     Вывести все слова из файла, содержащие в себе слово red #3
Необходимо сделать не с готовой функцией, а сделать свой метод
Kerry_Jr
Модератор
 Аватар для Kerry_Jr
1940 / 1736 / 606
Регистрация: 14.05.2014
Сообщений: 5,036
Записей в блоге: 1
Завершенные тесты: 5
30.05.2014, 12:20     Вывести все слова из файла, содержащие в себе слово red #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
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>
#include <fstream>
 
int strlength(const char* str)
{
    int count = 0;
    for (int i = 0; str[i] != '\0'; i++, count++);
    return count;
}
 
bool substr(const char* str1, const char* str2)
{
    int j = 0, count = 0;
    for (int i = 0; i < strlength(str1); i++)
    {
        if (str1[i] == str2[j])
        {
            if(str2[j] == '\0') break;
            count++;
            j++;
        }
    }
    return count == strlength(str2) ? true : false;
} 
 
int main()
{
    setlocale(LC_ALL, "");
    
    char red[64];
    char b[] = "red";
    
    std::ifstream input("red.txt");
    std::ofstream output("out.txt");
    
    while (!input.eof())
    {
        input >> red;
        std::cout << red << std::endl;
        if(substr(red, b))
        {
            output << red << " ";
            //std::cout << red << std::endl;
        }
    }
    input.close();
    output.close();
    
    return 0;
}
Kuzia domovenok
 Аватар для Kuzia domovenok
1886 / 1741 / 117
Регистрация: 25.03.2012
Сообщений: 5,910
Записей в блоге: 1
30.05.2014, 12:24     Вывести все слова из файла, содержащие в себе слово red #5
судя по этому,
Цитата Сообщение от Aecttann Посмотреть сообщение
char b; b = 'red';
тебе ещё рано писать программы со строками, тебе, для начала нужно понять, что char это не строковый тип!
Kerry_Jr
Модератор
 Аватар для Kerry_Jr
1940 / 1736 / 606
Регистрация: 14.05.2014
Сообщений: 5,036
Записей в блоге: 1
Завершенные тесты: 5
30.05.2014, 13:11     Вывести все слова из файла, содержащие в себе слово red #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Извиняюсь за нерабочий вариант substr. Вот переделал
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
bool substr(const char* str1, const char* str2)
{
    int j = 0;
    for (int i = 0; i < strlength(str1); i++)
    {
        if (str2[j] == str1[i] && j < strlength(str2))
            j++;
        else if (j == strlength(str2)) 
            break;
        else
            j = 0;
    }
    return j == strlength(str2) ? true : false;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2014, 14:37     Вывести все слова из файла, содержащие в себе слово red
Еще ссылки по теме:

C++ В предложении найти и вывести на экран все слова, содержащие ровно две буквы “d”
Вывести все строки файла, содержащие более 30 символов C++
Перенести из одного файла все строки, содержащие конкретное слово в другой C++
C++ Из заданного файла удалить все слова c двумя согласными и вывести на экран оставшиеся слова
C++ Вывести все слова из файла в алфавитном порядке, указать частоту каждого слова

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

Или воспользуйтесь поиском по форуму:
Aecttann
 Аватар для Aecttann
6 / 6 / 0
Регистрация: 19.10.2013
Сообщений: 279
06.06.2014, 14:37  [ТС]     Вывести все слова из файла, содержащие в себе слово red #7
Допустим, в файле есть слово asdrredasd
Тогда это слово не выводится, как это исправить?

Добавлено через 15 минут
Может, нужен ещё один цикл, в котором мы будем делать проверку?
Yandex
Объявления
06.06.2014, 14:37     Вывести все слова из файла, содержащие в себе слово red
Ответ Создать тему
Опции темы

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