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

Разработать класс String, который в дальнейшем будет использоваться для работы со строками - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Spirit987
 Аватар для Spirit987
2 / 2 / 0
Регистрация: 27.03.2013
Сообщений: 50
26.06.2013, 15:41     Разработать класс String, который в дальнейшем будет использоваться для работы со строками #1
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
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
 
class string_                
{
    char *s;
    int len;
public:
    // По умолчанию
    string_(){
    len=81;
    s=new char [len];
    }
    // string Произвольного размера
    string_(int len);
    //string_(char sring[],int x);
 
    // метод Ввода
    void Enter();
    // Вывад
    void Show();
 
    // Kопирование
    string_ (const string_& S);
 
    // удаление
    ~string_(){
        delete [] s;
    }
};
 
string_::string_(const string_& S){
    len=S.len;
    s=new char[len+1];
    strcpy(s,S.s);
}
void string_::Enter(){
        cout<<"Enter line =";
        cin.getline(s,len);
    }
 
void string_::Show(){ 
        cout<<"\nYou to enter line =";
        cout<<s;
        cout<<endl;
    }
 
string_::string_(int x){
    len=x+1;
    s=new char [len];
}
 
 
void main(){
    int size;
string_ line;
line.Enter();
line.Show();
line.~string_();
 
cout<<"size line =";
cin>>size;
string_ line_2(size);
 
// Инициализация 2 элемента
line.Enter();
line_2.Show();
}
Добавлено через 1 минуту
Задание:
конструктор по умолчанию, позволяющий создать строку длиной 80 символов;
конструктор, позволяющий создавать строку произвольного размера;
конструктор, который создаёт строку и инициализирует её строкой, полученной от пользователя.

Класс должен содержать методы для ввода строк с клавиатуры и вывода строк на экран.

Добавлено через 2 минуты
1 конструктор работает
2 пропускает 41 строку на инициализации.

Добавлено через 2 минуты
да скорей всего в примере какая то детская ошибка или того хуже.
но хоть подскажите куда смотреть.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.06.2013, 15:41     Разработать класс String, который в дальнейшем будет использоваться для работы со строками
Посмотрите здесь:

C++ Написать класс для эффективной работы со строками
Разработать класс String определив для него методы C++
C++ Разработать класс для работы со стеком
Разработать класс String, который в дальнейшем будет использоваться для работы со строками. C++
Разработать класс String для работы со строками C++
C++ Класс для работы со строками CString
Создайте класс для работы со строками CString C++
C++ Создать класс для работы сo строками
C++ Создать динамический класс для работы со строками. Перегрузка строкового класса
C++ Разработать класс String, который в дальнейшем будет использоваться для работы со строками
C++ Класс для работы со строками (с поддержкой китайских символов)
Разработать класс String определив для него методы C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gepar
 Аватар для Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,512
26.06.2013, 15:46     Разработать класс String, который в дальнейшем будет использоваться для работы со строками #2
Цитата Сообщение от Spirit987 Посмотреть сообщение
2 пропускает 41 строку на инициализации.
До geline() может докатиться какой-то пробел в буфере от предыдущего чтения, очищайте буфер вызовом _flushall() перед этим getline.
Spirit987
 Аватар для Spirit987
2 / 2 / 0
Регистрация: 27.03.2013
Сообщений: 50
26.06.2013, 15:52  [ТС]     Разработать класс String, который в дальнейшем будет использоваться для работы со строками #3
может можно чем то заменить cin.getline
не выдел ответа сейчас попробую
Gepar
 Аватар для Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,512
26.06.2013, 16:13     Разработать класс String, который в дальнейшем будет использоваться для работы со строками #4
@Spirit987, можешь ещё чтобы наверняка сделать cin.clear() перед этим, обычно комбинации
C++
1
2
_flushall();
cin.clear();
хватает чтобы привести в боеспособность почти любую операцию с входным потоком

Добавлено через 52 секунды
P.S иногда(в зависимости от компилятора) перед flushall может понадобиться не одно нижнее подчёркивание, а несколько.
Yandex
Объявления
26.06.2013, 16:13     Разработать класс String, который в дальнейшем будет использоваться для работы со строками
Ответ Создать тему
Опции темы

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