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

Нужно сделать по заданию задачу, выдает ошибку при компилировании - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычислить элементы последовательности http://www.cyberforum.ru/cpp-beginners/thread1020762.html
C++ Решить систему уравнений решить систему уравнений f(x)= 0 и f(x)=1/x+6 при x<=1, else http://www.cyberforum.ru/cpp-beginners/thread1020758.html
Выделение слова. Строки C++
Написать программу выделения последнего слова из введенной строки и отображение его на экране. Помогите, пожалуйста.
C++ Объект задается чертежом
Написать программу в MC Visual C++: Объект задается чертежом: вводятся точки (координаты) пересечения отрезков прямых. Программа должна позволять перемещение по обеим координатам чертежа, масштабирование с коэффициентами 2; 2,5; 4; 10. Необходим подсчет длины всех отрезков (с учетом масштаба). При выходе чертежа за пределы рабочего листа должна появляться строка "необходимо применить масштаб"....
C++ Вывод элементов массива в строку http://www.cyberforum.ru/cpp-beginners/thread1020676.html
Привет. Помогите, пожалуйста... Есть код программы, она выводит элементы массива в столбец, подправьте,чтобы элементы массива выводились в строку #include <iostream> #include <stdlib.h> #include <conio.h> #include <math.h> #include <time.h> using namespace std; int main ()
C++ CRC16, Unsigned Char и Полином CRC Verifying code #define UCHAR unsigned char #define UWORD unsigned int UWORD code CRC_TABLE={ 0x0000,0x1021,0x2042,0x3063,0x4084,0x50A5,0x60C6,0x70E7, 0x8108,0x9129,0xA14A,0xB16B,0xC18C,0xD1AD,0xE1CE,0xF1EF }; подробнее

Показать сообщение отдельно
Мария1501
0 / 0 / 0
Регистрация: 26.11.2013
Сообщений: 29
27.11.2013, 21:14  [ТС]     Нужно сделать по заданию задачу, выдает ошибку при компилировании
Чужое конечно, я сама вообще бред бредячий делаю, прочитала уже кучу литературы и не могу понять как и что...мне это не дано, но задачку нужно сдать, иначе будет плохоСделайте как надо, очень прошу

Добавлено через 2 часа 6 минут
Цитата Сообщение от Мария1501 Посмотреть сообщение
В конструкторе, который принимает укатель на char, не проставляется терминирующий ноль. Во втором конструкторе, терминирующий ноль проставляется в неправильном место (должен проставляться в n-й символ).
Как вот это сделать?

Добавлено через 22 минуты
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Ошибок при компиляции куча, но даже, когда они будут исправлемы, в твоем классе будет не хватать конструктора копий и оператора равно. Не забудь!
ЧТо за конструктор копий и оператора равно? Куда это ставить?

Добавлено через 2 часа 39 минут
Со всеми изменениями программа выглядит так:

Код
#include <cstdlib>
#include <iostream>

using namespace std;

class String
{
public:
	String(char* string = "")
	{
		n = strlen(string) + 1;
		str = new char[n];
		memcpy(str, string, n);
	}

	String(char* string, size_t size)  //êîíñòðóêòîð, ïîçâîëÿþùèé ñîçäàòü ñòðîêó èç size ñèìâîëîâ
	{
		n = size + 1;
		str = new char[n];		
		memcpy(str, string, n * sizeof(char));
		str[size] = 0;
	}

	~String()
	{
		if (str)
		delete str;
	}

	void print()
	{
		std::cout << str << std::endl;
	}

	int const getnum() //êîë-âî ñèìâîëîâ â ñòðîêå
	{
		return n - 1;
	}

	char const getchar(int n) // ñèìâîë èç ïîçèöèè n
	{
		return str[n - 1];
	}

	void upper()  // â âåðõíèé ðåãèñòð
	{
		for (int i = 0; i < n; i++)
			str[i] = toupper(str[i]);
	}

	int const punctuation() // êîë-âî çíàêîâ ïðåïèíàíèÿ
	{
 int count = 0;
 for (int i = 0; i < n; i++)
 if (ispunct(str[i]))
    count++;
    return count;
	}

private:
	char* str;
	int n; 
};


int main()
{
	String str("I!love!!!programming!");

	str.upper();
	str.print();

	std::cout << str.getnum() << std::endl;
	std::cout << str.punctuation() << std::endl;
	std::cout << str.getchar(1) << std::endl;

	system("PAUSE");
	return 0;
}
В конструкторе, который принимает укатель на char, не проставляется терминирующий ноль. Во втором конструкторе, терминирующий ноль проставляется в неправильно место (должен проставляться в n-й символ). Как это сделать в данном коде?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru