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

поиск слов, состоящих из прописных букв - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ variably modified type http://www.cyberforum.ru/cpp-beginners/thread270861.html
Привет всем. Нужна помощь в решении проблемы с variably modified type в объявлении переменной по шаблону. О чем в общем. Есть некая структура, которая содержит размер строки ( char ), нужно обьявить...
C++ Две простенькие програмки При защите лабораторных спросили следующие задания : F(x)=N! Cin > N Найти N! Дан масив из 10 символов нужно вывести на экран числа кратные 7. http://www.cyberforum.ru/cpp-beginners/thread270857.html
C++ Задана строка, содержащая буквы и числа
Задана строка, содержащая буквы и числа. Найти произведение всех чисел, заданных в строке. Помогите написать программу. Заранее спасибо.
Отредактировать заданное предложение... C++
Отредактировать заданное предложение удаляя из него все слова с нечетными номерами и переворачивая слова с четными номерами. Помогите написать программу... заранее спасибо
C++ fread http://www.cyberforum.ru/cpp-beginners/thread270844.html
Подскажите пожалуйста, как можно записать в структура данные из файла используя fread, просто все записывается в одну кучу и только одна строка. Пример запроса:...
C++ матрица объясните как вывести матрицу 111111 011110 001100 001100 011110 111111 для вывода желательно использовать cout и желательно поменьше условий подробнее

Показать сообщение отдельно
kazahec
3 / 3 / 0
Регистрация: 05.04.2011
Сообщений: 25

поиск слов, состоящих из прописных букв - C++

05.04.2011, 22:20. Просмотров 1273. Ответов 3
Метки (Все метки)

всем доброго времени суток, собственно сабж, необходимо найти слова, содержащиеся в файле, которые состоят только из прописных букв.
проблема в том что необходимо использовать список, линейный не кольцевой, т.е. есть исходный файл с текстом, далее необходимо этот текст скопировать в другой файл, и вывести список слов, которые соответствуют заданию(состоят только из прописных букв)
вот кое какой код из проги...
в файле вордлист -
там, где начинается fout<<"\n\nResult:\n";while (current) должно быть какое то условие того, что буквы в слове прописные, я думаю понятно что конструкция current->word[0] - первый символ слова, а current->word[current->word.size()-1] - последний.. эмм вопрос в том - использовать ли функцию isupper() или сделать по другому, используя таблицу ascii например оО

исходник *.cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "WordList.h"
#include <iostream>
 
using namespace std;
 
int main()
{
    ifstream text("text.txt");          //открытие потока файла для входного файла
    ofstream fout("outfile.txt");       //открытие потока для выходного файла
 
    WordList List;
 
 
    List.word_list(text);
 
    text = *(new ifstream("text.txt"));
    List.result(text, fout);
 
    return 0;
}
заголовочный WordList.h

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 "Text_Base.h"
 
class WordList : public Text_Base  
{
private:
    char posl;
public:
    WordList();
    ~WordList();
    void result(ifstream &txt, ofstream &fout);
};
 
WordList::WordList()
{
    first = NULL;
}
 
WordList::~WordList()
{
 
}
 
void WordList::result(ifstream &txt, ofstream &fout)
{
    fout<<"Input file: \n\n";
    
    while(!txt.eof())//Пока не конец файла
    {
        char ch;
        
        txt.read(&ch,1);
        fout<<ch;//посимвольная запись в файл
    }
    
    cout<<Rus("Эхо-печать выполнена!\n");
    cout<<"=================================================|\n";
    int kol=0;              //счетчик найденных слов
    link* current = first;
    
 
    fout<<"\n\nResult:\n";
           
    while (current)
    {
    if ((current->word[0] ==isupper(??))&&(current->word[current->word.size()-1] == isupper(??)))
        {
            fout<<current->word<<"\n";
            kol++;
        }
        current = current->next;
    }
    if(!kol)
        fout<<"Words aren't found!=(\n";
}
заголовочный Text_Base.h
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
#pragma once
#include <string>
#include <fstream>
#include <iostream>
#include <windows.h>
 
using namespace std;
 
char bufRus[256];
char* Rus(const char* txt) 
{
    CharToOem(txt, bufRus);
    return bufRus;
}
//////////////////////////////////////////////////////////////////////////////////////
struct link
{
    string word;
    link* next;
};
 
 
class Text_Base  
{
protected:
    link* first;
    char posl;
public:
    Text_Base();
    void word_list(ifstream &text); //выделение слов и заполнение списка.
    void Echo(ifstream &txt, ofstream &of);     //Эхо-печать исходного текста.
    virtual ~Text_Base() = 0;
 
};
///////////////////////////////////////////////////////////////////////////////////////
Text_Base::Text_Base()
{
    first = NULL;
}
 
Text_Base::~Text_Base()
{
}
 
void Text_Base::word_list(ifstream &text)
{
    string tmp_word = "";
    char ch;
    do
    {
        
        text.read(&ch,1);
    
        if ((ch != '.') && (ch != ',') && (ch != '!') && (ch != '-')&& (ch != '?') && (ch != ' ') && (ch != '\n'))
        {
            tmp_word += ch;
            posl=ch;
        }
        else
        {
            link* tmp_link = new link;  //заполнение
            tmp_link->word=tmp_word;    //списка
            tmp_link->next=first;       
            first = tmp_link;           
            posl = tmp_word[tmp_word.size()-1];
    //      cout<<tmp_word;
            tmp_word = "";
        }
 
    }
    while (!text.eof());
    cout<<Rus("Слова определены!\n");
    cout<<"=================================================|\n";
            
}
 
void Text_Base::Echo(ifstream &txt, ofstream &of)
{
    of<<"Input file: \n\n";
    while(!txt.eof())//Пока не конец файла
    {
        char ch;
        
        txt.read(&ch,1);
        of<<ch;//посимвольная запись в файл
    }
    cout<<Rus("Эхо-печать выполнена!\n");
 
    cout<<"=================================================|\n";
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.