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

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

Войти
Регистрация
Восстановить пароль
 
TopoRRR
0 / 0 / 0
Регистрация: 14.12.2009
Сообщений: 15
#1

класс на С++ - C++

14.12.2009, 23:01. Просмотров 769. Ответов 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
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <cstring>
using namespace std;
///////////////////////////////////////////////////////////
class String
{
private:
enum { SZ = 100 }; // максимальный размер строки
char str [ SZ ]; // сама строка
public:
 
int main ( )
{
string text, old, zam;
 
cout << "vvedite text: ";
cin >> text;
cout << "vi vveli: " << text << endl;
 
cout << "vvedite simvol dlya zameny: ";
cin >> old;
cout << "vvedite novii simvol: ";
cin >> zam;
 
{
string s1 (text); //сам текст
string s2 (old); //то что надо поменять
string s3 (zam); //то на что меняем
 
s1.replace ( s2 , s3 ); // замена
 
cout << "s1: " << s1 << endl;
}
 
 
return 0;
}
как я понимаю правды в данном коде мало, у меня стоит Visual Studio 2008, которая ругается на то что я написал
надеюсь на вашу помощь господа программисты!
Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2009, 23:01     класс на С++
Посмотрите здесь:

Как наложить класс на класс? - HTML, CSS
&lt;html&gt; &lt;head&gt; &lt;link href=&quot;css.css&quot; rel=&quot;stylesheet&quot;&gt; &lt;/head&gt; &lt;body&gt; &lt;div class=&quot;main_fon_bg&quot;&gt; &lt;div class=&quot;main_fon_bg1&quot;&gt;&lt;img...

Обычный класс vs абстрактный класс - ООП и паттерны
Не могу понять, зачем и когда использовать абстрактный класс. Если у нас много повторяющегося кода в классах, которые можно отнести к одной...

Класс и класс-наследник - C++ Builder
Свойство задачи таково. Описать базовый класс Животное (свойства название, вес), класс-наследник – Собака (добавить свойство Порода). Для...

Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени? - C++
На самом деле ничё фантастического я не прошу, ведь: template &lt;class T&gt; class matrix { friend class diagonal; ...

Класс таблиц баз данных и класс записей в таблице(реляционная таблица). Предусмотреть класс связей между таблицами - C++
Здравствуйте! Никак не могу продумать структуру этой программы. Проходим наследование, но я все равно не знаю, как его здесь применить. Как...

Отдельно класс данных, класс формул и главный класс - C++
Здравствуйте! У меня есть три вопроса. Первый вопрос. Скажите пожалуйста! Правильный ли это подход к созданию приложений :...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
15.12.2009, 00:49     класс на С++ #2
Цитата Сообщение от TopoRRR Посмотреть сообщение
доброго времени суток тому кто сможет мне помочь!
задача такова.
создать простенький класс для работы со строкой, а именно:
-Ввод произвольного текста,
-Ввести некоторый символ (один или несколько),
-Заменить в строке введенные символы на другие (их тоже вводит пользователь).
общий принцип такой:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class replecator
{
    public:
        bool replace(char* p, char old, char zam)
                  //возвращает true в случае удачной замены
        {
            if (p==NULL) return false;
            int i = 0;
            while (p[i]!='\0')
                { p[i] = (p[i]==old)? zam : p[i] ; i++;}
            return true;
        }
};

порядок вызова метода:
int main()
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#define MAX_SIZE 1000
int main()
{
    using namespace std;
    cout<<" Input test string:";
    char str[MAX_SIZE];
    gets(str);
    cout<<"\n Input test old (1 character):";
    char old;
    cin>>old;
    cout<<"\n Input test zam (1 character):";
    char zam;
    cin>>zam;
    cout<<"\n before replacing test string is:"<<str;
    replecator obj;
    obj.replace(str, old, zam);
    cout<<"\n after replacing test string is::"<<str<<endl;
    
    
    system("pause");
    return 0;
}

в случае, если замена выполняется для произвольного числа символов - принцип тот же..
perchik71
69 / 27 / 2
Регистрация: 08.08.2009
Сообщений: 60
15.12.2009, 01:09     класс на С++ #3
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
#include <iostream>
#include <cstring>
class String
{
private:
string str, old, zam;
pos;
public:
String(): str(""), old(""), zam(""), pos(0) {}
void Set(); 
string& Rep();
};
string& Rep() 
{ 
while((pos=str.find(old,pos))!=-1)
str.replace(pos,zam.length(),zam.c_str());
return str;
} 
void String::Set() 
{ 
cout << "Текст: ";
cin >> text;
cout << "Заменить что: ";
cin >> old;
cout << "Заменить на: ";
cin >> zam;
}
void main ( )
{
String str=new String(); 
void Set(); 
cout << "результ: " << Rep()<< endl;
delete str;
}
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
15.12.2009, 01:14     класс на С++ #4
perchik71,
C++
1
String str=new String();
кгхм:
C++
1
delete str;
perchik71
69 / 27 / 2
Регистрация: 08.08.2009
Сообщений: 60
15.12.2009, 01:15     класс на С++ #5
что? у мну всё присутствует
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
15.12.2009, 01:19     класс на С++ #6
Цитата Сообщение от perchik71 Посмотреть сообщение
что? у мну всё присутствует
в таком случае - примите мои извинения.
perchik71
69 / 27 / 2
Регистрация: 08.08.2009
Сообщений: 60
15.12.2009, 01:22     класс на С++ #7
Цитата Сообщение от Vladimir. Посмотреть сообщение
в таком случае - примите мои извинения.
Ваше извинения приняты
TopoRRR
0 / 0 / 0
Регистрация: 14.12.2009
Сообщений: 15
15.12.2009, 09:21  [ТС]     класс на С++ #8
спасибо за помощь попробовал, правды в вашем коде куда больше))))
но толи у меня в.студия хреновая, то ли что, пробовал компилить код который прислал perchik71,
и чот снова не то.....
в любом случае большое спасибо за то что уделили внимание моей проблеме
perchik71
69 / 27 / 2
Регистрация: 08.08.2009
Сообщений: 60
15.12.2009, 17:38     класс на С++ #9
Какая именно студия??? и где не работает .... я прост переделал твой код )))
TopoRRR
0 / 0 / 0
Регистрация: 14.12.2009
Сообщений: 15
16.12.2009, 17:44  [ТС]     класс на С++ #10
MS Visual Studio 2008 Version 9.0.21022.8 RTM, битая скорее всего, я у одного человека в сетке дома качал.....
собственно вот что в итоге вышло у мення


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
#include <iostream>
#include <cstring>
#include <string>
 
using namespace std;
 
class myString
{
private:
    string str;  // обявление типов переменных
    string old;
    string zam; 
    int pos; // в данном случае позиция символа (места начиная с которого и что мы будем менять)
 
public:
    myString();
    ~myString();
    void Set(); 
    string& Rep();
};
 
myString::myString()
{
    str="";
    old="";
    zam="";
    pos=0;
}
 
myString::~myString()
{
}
 
 
string& myString::Rep ()
{
    pos = str.find (old);
    str.replace(pos,old.length(),zam);
    return str;
} 
 
void myString::Set() 
{ 
    cout << "text: ";
    getline(cin, str);   //здесь сначала у меня была ошибка, строка имела вид "cin >> str;"
    cout << "enter old: "; // но в таком виде программа не определяла строку с пробелами.
    getline(cin, old);
    cout << "enter new: ";
    getline(cin, zam);
    cout << "ok\n";
}
 
 
int main ()
{
    myString s;
    s.Set();
    cout << "novaya stroka: " << s.Rep()<< endl;
 
    system ("pause"); // у меня без остановки студия ругается, выкидывает приложение
 
    return 0;
}
я еще раз переработал код, используя в том числе ваши подсказки. мало ли кому то еще пригодиться))))
программа успешно сдана, можно двигаться дальше))))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2009, 07:54     класс на С++
Еще ссылки по теме:

Создать класс колесо, имеющее радиус. Определить конструкторы. Создать класс машин, содержащий класс колесо - C#
Создать класс колесо, имеющее радиус. Определить конструкторы. Создать класс машин, содержащий класс колесо. Дополнительно есть марка,...

Реализовать класс родительский класс "Пара чисел" и класс-наследник "Комплексное число" - C++
Ткма работы создать класс pair (пара чисел); определить метод перемножения полей и операцию сложения пар (a,b)+(c,d) =(a+b,c+d)...

Класс, производный класс, паблик-класс - C++
Задание: Создать класс колесо, которое имеет радиус. Определить конструкторы и метод доступа. Создать класс машин, содержащий класс колесо....


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

Или воспользуйтесь поиском по форуму:
perchik71
69 / 27 / 2
Регистрация: 08.08.2009
Сообщений: 60
17.12.2009, 07:54     класс на С++ #11
я еще раз переработал код, используя в том числе ваши подсказки. мало ли кому то еще пригодиться)))) программа успешно сдана, можно двигаться дальше))))
Ну собственно молодец))) у мну Borland и у мну чё-то тож
C++
1
system("PAUSE");
не катит ((( вместо этого я пишу
C++
1
getline(cin,str);
работает ))) пиши чё хош и жми на энтер прога ввыйдет мож даже просто энтер нажать ))))
Yandex
Объявления
17.12.2009, 07:54     класс на С++
Ответ Создать тему
Опции темы

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