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

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

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

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

14.12.2009, 23:01. Просмотров 774. Ответов 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, которая ругается на то что я написал
надеюсь на вашу помощь господа программисты!
Заранее спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2009, 23:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос класс на С++ (C++):

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

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

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

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

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

Создать класс “Автомагазин”, состоящей из класса ”Марки машин”. Класс “Автомагазин ”:название магазина, адрес, телефон. Класс “ Марки машин ”: марка - C++
Создать класс “Автомагазин”, состоящей из класса ”Марки машин”. Класс “Автомагазин ”:название магазина, адрес, телефон. Класс “ Марки...

10
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;
}

в случае, если замена выполняется для произвольного числа символов - принцип тот же..
1
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;
}
1
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;
1
perchik71
69 / 27 / 2
Регистрация: 08.08.2009
Сообщений: 60
15.12.2009, 01:15 #5
что? у мну всё присутствует
1
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
15.12.2009, 01:19 #6
Цитата Сообщение от perchik71 Посмотреть сообщение
что? у мну всё присутствует
в таком случае - примите мои извинения.
2
perchik71
69 / 27 / 2
Регистрация: 08.08.2009
Сообщений: 60
15.12.2009, 01:22 #7
Цитата Сообщение от Vladimir. Посмотреть сообщение
в таком случае - примите мои извинения.
Ваше извинения приняты
1
TopoRRR
0 / 0 / 0
Регистрация: 14.12.2009
Сообщений: 15
15.12.2009, 09:21  [ТС] #8
спасибо за помощь попробовал, правды в вашем коде куда больше))))
но толи у меня в.студия хреновая, то ли что, пробовал компилить код который прислал perchik71,
и чот снова не то.....
в любом случае большое спасибо за то что уделили внимание моей проблеме
0
perchik71
69 / 27 / 2
Регистрация: 08.08.2009
Сообщений: 60
15.12.2009, 17:38 #9
Какая именно студия??? и где не работает .... я прост переделал твой код )))
0
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;
}
я еще раз переработал код, используя в том числе ваши подсказки. мало ли кому то еще пригодиться))))
программа успешно сдана, можно двигаться дальше))))
0
perchik71
69 / 27 / 2
Регистрация: 08.08.2009
Сообщений: 60
17.12.2009, 07:54 #11
я еще раз переработал код, используя в том числе ваши подсказки. мало ли кому то еще пригодиться)))) программа успешно сдана, можно двигаться дальше))))
Ну собственно молодец))) у мну Borland и у мну чё-то тож
C++
1
system("PAUSE");
не катит ((( вместо этого я пишу
C++
1
getline(cin,str);
работает ))) пиши чё хош и жми на энтер прога ввыйдет мож даже просто энтер нажать ))))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2009, 07:54
Привет! Вот еще темы с ответами:

Абстрактный класс CGraphicsObject, его наследник - базовый класс CPoint, и класс - наследник от CPoint - C++
Всем доброй ночи! Очень нужна помощь и по мере возможности разъяснения на темы: абстрактный класс в задании(что он из себя представляет и...

Создать класс Элемент списка (Node), а затем класс Список (List) - C++
Задание: Создать класс Элемент списка (Node), а затем класс Список (List). В зависимости от варианта список должен быть одно или...

Ошибка в выводе данных, класс выводит правильно, а класс в классе - нет - C++
Неизвестная для меня проблема. Класс выводит данные правильно из Consigment, а вот третий экземпляр класса, работает не верно, если...

Класс домов и класс улиц для учета поступлений квартплаты. Массив - C++
Задание: вырезано Файл StdAfx.h #pragma once #include &quot;targetver.h&quot; #include &lt;stdio.h&gt;


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

Или воспользуйтесь поиском по форуму:
11
Yandex
Объявления
17.12.2009, 07:54
Ответ Создать тему
Опции темы

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