Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2010, 23:29   #1
Inna_L
Пользователь
 
Регистрация: 22.06.2010
Сообщений: 13
По умолчанию Классы С++ и строки

ЗАДАЧА
нужно создать класс String, который в дальнейшем будет использоваться для работы со строками. Класс должен содержать:
- конструктор по умолчанию, позволяющий создать строку длиной 80 символов;
-конструктор, позволяющий создавать строку произвольного размера;

Уважаемые специалисты, подскажите новичку - программку сделала, компилируется, но если ввести большее количество символов, ее глючит...что не так?
Код:
#include <iostream>
#include <string>
using namespace std;

class MyString 
{
	char *str;
	int size;
 public:

 MyString() 
 { 
 size=81;
 str = new char [size];
  }

 MyString(int n) 
 { 
 size=n+1;
 str = new char [size];
 }
  ~MyString()
 {
 delete [] str;
 }

 void in_str()
 {
 cin.getline(str,size);
 }
 
 void show()
 {
 int k;
 cout << str << endl;
 k = strlen(str);
 cout<<"проверка - длина введенной строки: "<<k;
 }
};


void main()
{
setlocale(LC_CTYPE,"Rus");
MyString str;
cout<<"Введите строку длиной 80 символов: \n";
str.in_str();
cout<<"строка 1 : \n";
str.show();
cout <<"\n\n\n\n";
system("pause");
system("cls");

int l=0;
cout<<"Введите количество символов в строке: \n";
cin>>l;
MyString str2(l);
cout<<"Введите строку : \n";
cin.ignore(1);
str2.in_str();
cin.ignore(1);
cout<<"строка 2 : \n";
str2.show();
cout <<"\n\n\n\n";
system("pause");
system("cls");
}
Inna_L вне форума Ответить с цитированием
Старый 10.11.2010, 23:59   #2
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

cin.getline(str,size - 1);

ещё в каждом конструкторе после выделения памяти: memset(str, 0, size);
Carbon вне форума Ответить с цитированием
Старый 11.11.2010, 12:43   #3
Inna_L
Пользователь
 
Регистрация: 22.06.2010
Сообщений: 13
По умолчанию

простите за глупый вопрос, а что это означает, нас не учили
Inna_L вне форума Ответить с цитированием
Старый 11.11.2010, 12:44   #4
Inna_L
Пользователь
 
Регистрация: 22.06.2010
Сообщений: 13
По умолчанию

ааа, все поняла спасибочки
Inna_L вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Классы в C++ positivemann Помощь студентам 3 15.03.2010 21:40
Классы в С++ Wirz Помощь студентам 1 04.06.2009 23:22
С++ классы KOLYTFR Помощь студентам 1 04.06.2009 19:58
Классы TeleSky Помощь студентам 11 05.01.2009 13:43