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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Aecttann
6 / 6 / 0
Регистрация: 19.10.2013
Сообщений: 335
#1

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

30.05.2014, 01:10. Просмотров 501. Ответов 6
Метки нет (Все метки)

Необходимо вывести все слова из файла, содержащие в себе слово 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();
 
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2014, 01:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывести все слова из файла, содержащие в себе слово red (C++):

Вывести на экран все слова предложения, содержащие в качестве подстроки слово w - C++
В строках вообще чёт понять не могу(( пожалуйста объясните хотя алгоритм как делать по подробнее!(( вот задание: С клавиатуры вводится...

:Вывести все слова предложения, содержащие последнюю букву предыдущего слова не менее 2 раз - C++
Делаю задание:Вывести все слова предложения, содержащие последнюю букву предыдущего слова не менее 2 раз. Начал с пере формировки...

Перенести из одного файла все строки, содержащие конкретное слово в другой - C++
Суть в том,чтобы создать 2 файла &quot;file1&quot; и &quot;file2&quot;, в &quot;file1&quot; написан какой то текст,&quot;file2&quot; пустой, нужно из первого файла перенести все...

Строки (вывести все слова, содержащие только латинские буквы) - C++
Здравствуйте, нужно вывести все слова, содержащие только латинские буквы. Задаётся последовательность, в которой слова разделены запятыми,...

Считать текст из файла и вывести на экран только предложения, содержащие введённое с клавиатуры слово - C++
Написать программу, которая считывает текст из файла и выводит на экран только предложения, содержащие введённое с клавиатуры слово. ...

Считать текст из файла и вывести на экран только предложения, содержащие введенное с клавиатуры слово - C++
У меня тут проблемка возникла! Осталась последняя неделя - ни как не могу написать вот эти проги. Если не трудно помогите плиз ...

6
Kerry_Jr
Модератор
Эксперт PHP
2201 / 1997 / 700
Регистрация: 14.05.2014
Сообщений: 5,859
Записей в блоге: 1
Завершенные тесты: 5
30.05.2014, 02:32 #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;
}
В предыдущем сообщении параметры местами перепутал.
0
Aecttann
6 / 6 / 0
Регистрация: 19.10.2013
Сообщений: 335
30.05.2014, 10:54  [ТС] #3
Необходимо сделать не с готовой функцией, а сделать свой метод
0
Kerry_Jr
Модератор
Эксперт PHP
2201 / 1997 / 700
Регистрация: 14.05.2014
Сообщений: 5,859
Записей в блоге: 1
Завершенные тесты: 5
30.05.2014, 12:20 #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;
}
1
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
30.05.2014, 12:24 #5
судя по этому,
Цитата Сообщение от Aecttann Посмотреть сообщение
char b; b = 'red';
тебе ещё рано писать программы со строками, тебе, для начала нужно понять, что char это не строковый тип!
0
Kerry_Jr
Модератор
Эксперт PHP
2201 / 1997 / 700
Регистрация: 14.05.2014
Сообщений: 5,859
Записей в блоге: 1
Завершенные тесты: 5
30.05.2014, 13:11 #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;
}
1
Aecttann
6 / 6 / 0
Регистрация: 19.10.2013
Сообщений: 335
06.06.2014, 14:37  [ТС] #7
Допустим, в файле есть слово asdrredasd
Тогда это слово не выводится, как это исправить?

Добавлено через 15 минут
Может, нужен ещё один цикл, в котором мы будем делать проверку?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2014, 14:37
Привет! Вот еще темы с ответами:

В предложении найти и вывести на экран все слова, содержащие ровно две буквы “d” - C++
Всем привет! Помогите написать программу! В предложении найти и вывести на экран все слова, содержащие ровно две буквы “d”. Заранее...

Вывести все строки файла, содержащие более 30 символов - C++
Имеется текстовый файл.Вывести все строки содержащие более 30 символов Ребята помогите решить лабу,на кону моя сессия)В С++

Из текстового файла неизвестного размера вывести на экран все предложения, не содержащие запятых - C++
Привет, Программисты! :) Нужна ваша помощь... Есть задача по поводу работы со строками: &quot;Из текстового файла неизвестного размера вывести...

Вывести все слова из файла в алфавитном порядке, указать частоту каждого слова - C++
Вывести алфавитный список всех слов заданного текста с указанием количества вхождений слова в текст.


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

Или воспользуйтесь поиском по форуму:
7
Yandex
Объявления
06.06.2014, 14:37
Ответ Создать тему
Опции темы

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