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

Работа с динамическими строками - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Упорядочить столбцы матрицы по возрастанию количества одинаковых элементов в каждом столбце http://www.cyberforum.ru/cpp-beginners/thread1061951.html
Дана целочисленная прямоугольная матрица. Упорядочить столбцы матрицы по возрастанию количества одинаковых элементов в каждом столбце. Что я могу сделать, так это матрицу заполняющуюся с клавиатуры. Сортировку сложно представить так как только недавно узнал о С++. Надеюсь на Вашу помощь! #include "stdafx.h" #include <iostream> using namespace std;
C++ Что такое глобальные и локальные объекты класса? Что такое глобальние и локальные обекты класа. Напишыте пожалуста с примерами. http://www.cyberforum.ru/cpp-beginners/thread1061906.html
Изменение значение аргумента в void-функции C++
Здраствуйте. У меня к вам будет такой вопрос: void read(Tbig a){ .... .... } В процедуре например там мы что-то делаем... Но когда вызвать эту процедуру в основной программе, параметры которые мы ей передаем не меняются.... как сделать так чтобы они менялись, не модифицируя процедуру в функцию?
C++: IDE, инструментарий Где можно скачать С++ Builder?
Прошу дать сылку где можно скачать С++ Builder Пробывал из сдешних не получалось
C++ Найти номер минимального элемента массива http://www.cyberforum.ru/cpp-beginners/thread1061878.html
составить алгоритм и консольную программу для данной задачи: 1) найти номер минимального элемента массива 2) найти сумму элементов массива,расположенных между первым и вторым отрицательными элементами 3) преобразовать массив таким образом, чтобы сначала располагались все элементы, модуль которых не превышает 1, а потом - все остальные.
C++ Сложение массивов разной длины. Неверный результат При сложение двух массивов выходит значение -858993455 это всё из за того что разная длина массива как можно решить проблему? что бы место неопределнного элемента был ноль + значения массива или что то может другое #include <stdafx.h> #include <iostream> #include <stdio.h> #include <conio.h> #include <math.h> #include <windows.h> using namespace std; подробнее

Показать сообщение отдельно
Юлия611
0 / 0 / 0
Регистрация: 10.05.2011
Сообщений: 12

Работа с динамическими строками - C++

02.01.2014, 20:26. Просмотров 498. Ответов 2
Метки (Все метки)

Все здравствуйте. Есть вот такое задание к нему программа. Среда разработки - VS 2005. Компиляция проходит без ошибок, однако после ввода строки возникает ошибка: The variable 'i' is being used without being defined в строке str[i]='\0'; в void String::set(). Помогите, пожалуйста, устранить ее. Заранее благодарю

Задание. Пользовательский класс String должен содержать необходимые элементы-данные, которые создаются в динамической области памяти.
Конструктор для создания строк: String (…);
Деструктор: ~String();
Метод ввода исходной строки: Set();
Метод печати: void print(…);
Код методов – вне пространства определения класса. Программа иллюстрирует прямой и косвенный способы обращения к методам.
Ввести с клавиатуры строку символов S1. Признак окончания ввода строки – нажатие клавиши «Ввод». Программа должна содержать перегруженную операцию «=», использование которой скопирует S1 в S2 .
Исходную и преобразованную строки вывести в файл. В программе необходимо использовать стоковые и файловые потоки.

Вариант задания: Если длина L=10, то удаляются все A..Z.



#include "stdafx.h"
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <istream>
#include <fstream>
#include <conio.h>
using namespace std;

///////////////////////////////////////
const int MAX=255;

class String
{
private:
char *str;
char *strend;
public:
String();
void set();//metod vvoda ish. stroki
void print();//metod pechati
void run();//metod vipolneniya zadachi
void printend();//metod pechati strend
String& operator= (String&);
~String();
};
//-------------------------------------
String::String()
{
str = new char [MAX];
str[0]='\0';
strend = new char [MAX];
strend[0]='\0';
//cout << "Constructor!";
}
//-------------------------------------
String& String::operator= (String&ss)//s2=s1
{
strcpy(strend, ss.str);
return *this;
}
//-------------------------------------
String::~String()
{
delete []str;
delete []strend;
//cout << "Destructor!";
}
//-------------------------------------
void String::run()
{
unsigned int i=0, j=0;
char *ss;
ss = new char [MAX];
ss[0]='\0';

if(strlen(str)==10)
{
for(i=0;i<10;i++)
{
if ( (str[i]<'A') || (str[i]>'Z') )
{
ss[j]=str[i];
j++;
}
}

ss[j]='\0';
str[0]='\0';

strcpy(str,ss);


cout << "\nStroka bez \"A\"...\"Z\": ";
}
else
{
cout << "\nStroka s \"A\"...\"Z\": ";
}
}
//-------------------------------------
void String::set()
{
int i;
cout << "Vvedite stroku: ";
char *stroka = new char [MAX];
stroka[0]='\0';
cin.getline(stroka,MAX);
for(unsigned int i=0;i<strlen(stroka);i++)
{
str[i] = stroka[i];
}
str[i]='\0';
delete []stroka;
}
//-------------------------------------
void String:rint()
{
ofstream file("file.txt", ios::app);
for (unsigned int i=0; i<strlen(str); i++)
{
cout << str[i];
}


file << endl;
for (int i=0; i<strlen(str); i++)
{
file << str[i];
}
}
//-------------------------------------
void String:rintend()
{
cout << "\nSkopirovannaya stroka: ";

for (unsigned int i=0; i<strlen(strend); i++)
{
cout << strend[i];
}
}
//////////////////////////////////////////////
void main(void)
{
ofstream file("file.txt", ios::out);

String s1,s2;

s1.set();
s1.print();
s1.run();
s1.print();

s2=s1;

s2.printend();

cout << "\n" << endl;

String *s3,*s4;
s3=new String; s4=new String;
s3->set();
s3->print();
s3->run();
s3->print();

*s4=*s3;

s4->printend();

cout << "\n" << endl;

getch();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru