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

Класс "строка" - C++

Восстановить пароль Регистрация
 
TopoRRR
0 / 0 / 0
Регистрация: 14.12.2009
Сообщений: 15
13.01.2010, 18:47     Класс "строка" #1
Доброго времени суток господа! кто может подсказать вот такую вещь.

есть задание:
написать класс "строка", в который должен:
1) складывать 2 подстроки
2) выполнять замену подстрок
3) менять длину строки

в качестве примера должно было быть следующее:
- есть строка "hello, "
- к ней добавляется "Vasyek" и "!" -> итог "hello, Vasyek!"
- замена "hello" на "bye" -> итог "bye, Vasyek!"
- замена "ye" на "some" -> итог "bsome, Vassomek!"
- подсчет длины строки -> в данном случае 16
- изменение длины строки -> например (3) итог "bso"

вот то что я набросал:

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
#include <iostream>
#include <cstring>
#include <string>
 
using namespace std;
 
class myString
{
private:
    string str1;
    string str2;
    string str;  
    string old;
    string zam;
    int dln; 
    int pos; 
 
public:
    myString();
    ~myString();
    void Set(); 
    string& Rep();
};
 
myString::myString()
{
    str2="";
    str1="";
    str=""; 
    old="";
    zam="";
    pos=0;
    dln=0;
}
 
myString::~myString()
{
}
 
 
string& myString::Rep () 
{       
    while((pos=str1.find(old))!=-1)
    str1.replace(pos,old.length(),zam);
    cout << str1;
    cout << "\n dlina stroki:" <<str1.length() << endl; 
    cout << "\n novaya dlina:" ;
    cin >> dln; 
    str1.resize (dln); 
    
    return str1; 
} 
 
void myString::Set() 
{    
    str1="hello, ";
    cout << "\ntext:" << str1 << endl;//
    cout << "\nprodolzhenie:";
    getline (cin, str2); 
    str1=str1+str2; 
    str1+="!"; 
    cout << "\ntext: " << str1 << endl;
    pos = str1.find ("hello");
    str1.replace (pos, 5 , "bye"); 
    cout << "\nzamena: " << str1 << endl;
    cout << "\nenter old: "; 
    getline(cin, old);
    cout << "\nenter new: ";
    getline(cin, zam);
    cout << "\nok\n";
    
    
}
 
 
int main ()
{
    myString s, str1;
    s.Set();
    cout << "\n novaya stroka: \n" << s.Rep() << endl;
 
 
    system ("pause"); 
    return 0;
}
в принципе оно работает, НО написано криво в ответ я получил что необходимо чтобы в main был такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/*
          // Я считаю, что myString уже есть
    myString str1, str2;
    
    str1="hello, "; // инициализирую строку
    cin >> str2; // считываю строку (например Vasyek)
    str1=str1+str2; // конкатенация (str1 = "hello, Vasyek")
    str1+="!"; // тоже конкатенация (str1 = "hello, Vasyek!")
    str1.replace("hello", "bye"); // одиночная замена (str1 = "bye, Vasyek!")
    str1.replaceAll ("ye", "some"); // множественная замена (str1 = "bsome, Vassomek!")
    cout << str1.getLength(); // str1.getLength() = 16
    str1.setLength(3); // (str1 = "bso")
    return (0);
*/
помогите поменять то что накарябано!!!!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2010, 18:47     Класс "строка"
Посмотрите здесь:

C++ Описать класс "Строка"
Класс "Символьная строка" C++
C++ Класс "Строка прогресса"
C++ Опишите абстрактный базовый класс "строка",реализующий методы ввода-вывода строки
Создать полноценный класс "Строка", с конструкторами, деструктором, преобразованием типов C++
Создать класс "Строка", реализующую текстовую строку C++
Базовый класс "Строка" отказывается работать C++
C++ Класс "строка" для работы со строками произвольной длины

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 00:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru