Работа со строками

Тема в разделе "Общие вопросы по С и С++", создана пользователем cyrrus, 7 май 2007.

  1. cyrrus

    cyrrus Гость

    В общем, пишу програму, но не очень получается т.к. новичок,
    суть програмы:
    " Написать програму с объектами, методы которых:
    1. Из фаила данных считать текст (текст не одна строчка).
    2. Удалить слова, в которых количество символов некратное.
    3. Оставшиеся слова выводятся в обратном порядке (порядок слов не меняется, меняется

    порядок симвоов в слове (нпрмер: абцд ->дцба))
    4. Все резултаты выводятся на екран и фаил результатов."

    Вот, я уже коечто написал, но застрял, как допустим реализоват код, чтоб он всеже лишал

    текст ненужных слов?
    И с обратным порядком совсем не ясно :/
    Вот мои код:
    Код (Text):
       
    #include "stdafx.h"
    #include <iostream>
    #include <fstream>
    #include <string>
    using namespace std;
    class tekst
    {
    public:


    void write(void)
    {
    char s[255];

    ofstream R("rez.txt");
    ifstream D("duom.txt");
    cout<<"Pervichnyj tekst: "<<endl;
    while (!D.eof()){
    D.getline(s,255);
    R<<s<<endl;
    cout<<s<<endl;     
    }
    D.close();
    R.close();
    }
    void delet(void)
    { char s[255];
    ofstream R("rez.txt",ios::app);
    ifstream D("duom.txt");
    while (!D.eof()){
    D.getline(s,255);}
    cout<<"V tekste "<<strlen(s)<<" simvolov"<<endl;
    R<<strlen(s)<<endl;

    while (!D.eof())
    {
    if (!(strlen(s)%2))
    D.getline(s,255);
    R<<s<<endl;
    cout<<s<<endl;
    }
    }
    };
    int main()
    { tekst a;
    a.write();
    a.delet();
    return 0;}
     
  2. Ogion7

    Ogion7 Гость

    определись. что такое слово и напиши функцию которая будет выделять из строки слово, возвращать его и удалять из исходной строки. А потом функции которая будет выполнять обращение слов. Каждое новое слово проверяеш на кратность и записываеш(или нет) в кой-нить результирующий масив
     
  3. cyrrus

    cyrrus Гость

    Вот как я дописал это:
    Код (Text):
    while (!D.eof())        //считаем количество слов в тексте
    {D.getline(str,255);
    for (int v;v<255;v++)
    while (str[v]!=32)
    n++;         
    }
    cout<<"V tekste "<<n<<" slov"<<endl;
    char * * str1[255];
    str1 = new char * [n];
    for (int i = 0; i < n; ++i) {
    str1[i] = new char [64]; //64 символа под слово должно хватить
    }
    for(int j=0;j<n;j++)
    {if (!(strlen(str1[i])%2))
    R<<str[i];}
    но, в линеике 10, там где "str1 = new char * [n];" -> error C2440: '=' : cannot convert from 'char ** ' to 'char **[255] '
    и почемуто количество слов показывает : -858993460
    в чем сдесь проблема? :)
     
  4. Ogion7

    Ogion7 Гость

    на код взгляни -- while (str[v]!=32), если первый символ условию не удовлетворит, то условие никогда не выполнится. А отрицательное число -- ибо циклит, при достижении n граничного значения, бит знака изменяестся и меняется знак. Хотя неясно почему остановилось...
     
  5. cyrrus

    cyrrus Гость

    сдесь я имел в виду:
    имеется текст str в нем v символов, проидя каждыи символ цикл считает сколько пробелов в тексте (я исчодил из того что сколько пробелов в тексте столько и слов, 32 это код пробела с ASCII)текст у меня простои, 3 строчки, без запятыч и точек.
    В програмировании я не силён, и даже составить работающий алгоритм мне тежело, по этому и прошу советов/наставлений/примеров.
     
Загрузка...
Похожие Темы - Работа со строками
  1. alexas1
    Ответов:
    1
    Просмотров:
    456
  2. shkeat
    Ответов:
    1
    Просмотров:
    1.685
  3. NickProstoNick
    Ответов:
    1
    Просмотров:
    2.308
  4. KiR
    Ответов:
    7
    Просмотров:
    9.458
  5. eugira
    Ответов:
    5
    Просмотров:
    5.404

Поделиться этой страницей