Страница 1 из 1

Классы

Добавлено: 16 ноя 2009, 19:55
dom1nator
Добрый вечер,помогите доделать программку:
Определить класс-строку. В класс включить два конструктора: для определения класса строки строкой символов и путем копирования другой строки (объекта класса строки). Предусмотреть функции сортировки слов в строке по алфавиту и подсчёта количества слов.
Собствеенно интересует сортирвока по алфавиту,знаю команду sort из библиотеки #include <algoritm>?но не знаю как применить к моей программе,помогите :confused:

Код: Выделить всё

#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;

class stroka
{ char *ch;
int len;
public:
stroka (stroka&b)
{len = strlen(b.ch);ch = new char [len+1];
strcpy(ch,b.ch);
}

stroka (const char *arch)
{len = strlen(arch);ch = new char [len+1];
strcpy(ch,arch);
}
int& len_str(void)
{return len;}
char *string(void)
{return ch;}
void display(void)
{cout<<"\ndlina stroki:"<<len;
cout<<"\nsoderjimoe stroki:"<<ch<<endl;
}
~stroka(){delete [] ch;}
void poisk()
{int i, n=0;
char p=' ';
for(i=0;i<len;i++)
if(ch[i]==p)
n=n+1;
cout<<"kolichestvo slov:"<<n<<endl;
}
};
void main()
{stroka a("Dobroe ytro");
a.display();
stroka c(a);
c.display();
a.poisk();
} 

Re: Классы

Добавлено: 16 ноя 2009, 21:00
Newbie

Re: Классы

Добавлено: 16 ноя 2009, 21:33
dom1nator
Посмотрел и не разобрался как делать,чесн слово, помогите я думаю надо вставлять вот так

Код: Выделить всё

void main()
{stroka a("Dobroe ytro");
sort ( stroka a.begin(),stroka a.end());
cout << "Polychenaya stroka:"; 
но выдает ошибку

Re: Классы

Добавлено: 17 ноя 2009, 08:39
kuho-uho
правильно выдает. твой класс строка не содержит интерфейса итератора. функций begin end нет.
для алгоритма сорт. сам дело не имел, но по логике нужен либо оператор< либо указатель на функцию компаре указывать.(по умолчанию используеться функция где сравниваеться спомощью оператор<).
для твоей задачи если тебе надо сортировать слова а не буквы, выдели слова из строки и вставь в контейнер любой. я бы взял std::list<string>(ибо тебе не нужен произвольный досткуп). а там либо алгоритм сорт либо метод класа лист. в стринге оператор< определен как раз по алфавиту.