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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2009, 14:29   #1
Sasuke-sama
Пользователь
 
Регистрация: 22.05.2009
Сообщений: 63
По умолчанию Выборка массивов!

У меня есть программка, которая выполняет,при длине L четной, то удаляются 2 первых и 2 последних символа;
Код:
#include<iostream.h>
#include<string.h>
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#define SIZE 255
class x
{
	char *str;
	char *str_return;
	public:
	      x();
	      x(char*);
	      ~x();
	      char* run();
	      void set(char*);
	      friend void print(x&);
	      friend ostream& operator<<(ostream&,x&);
	      friend istream& operator>>(istream&,x&);
	      friend char* run(x&);
};
x::x()
{
	str=new char[SIZE];
	str[0]='\0';
	str_return=new char[SIZE];
	str_return[0]='\0';
};
x::x(char *s)
{
	str=new char [SIZE];
	strcpy(str,s);
	str_return=new char [SIZE];
	str_return[0]='\0';
}
x::~x()
{
	delete[] str;
	cout<<"destructor has been called\n";
}
void x::set(char* s)
{
	unsigned int i;
	for(i=0;i<strlen(s);i++)
	str[i]=s[i];
	str[i]='\0';
}
char* x::run()
{
	int i=0;
	if ((strlen(str)%2==0)&(strlen(str)>=4))
	{
		for(i=0;i<strlen(str)-4;i++)
		str_return[i]=str[i+2];
		str_return[i]='\0';
	} else strcpy(str_return,str);
	return str_return;
}
char* run(x &obj)
{
	return obj.run();
}
void print(x &obj)
{
	cout<<obj.str<<" "<<obj.str_return<<"\n";
}
ostream& operator<<(ostream &stream,x &ob)
{
	stream<<ob.str;
	return stream;
}
istream &operator>>(istream &stream,x &ob)
{
	stream>>ob.str;
	return stream;
}
void main()
{
	char s[256];
	clrscr();
	cout<<"Vvedite stroku: ";
	cin.getline(s,256);
	x str(s);
	cout<<"Vvedennaya stroka:\n";
	print(str);
	cout<<"Preobrazovannaya stroka:\n";
	cout<<run(str)<<"\n\n";
	cout<<"Vvedite stroku: ";
	cin.getline(s,256);
	x *pstr;
	pstr=new x();
	pstr->set(s);
	cout<<"Vvedennaya stroka: ";
	print(*pstr);
	cout<<"Preobrazovannaya stroka: ";
	cout<<run(*pstr)<<"\n";
	delete pstr;
	getch();
}
А мне надо сделать так, что если длинна L>6-ти, то выводится какая либо строка! Как это сделать???
Sasuke-sama вне форума Ответить с цитированием
Старый 30.05.2009, 14:41   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Sasuke-sama
А мне надо сделать так, что если длинна L>6-ти, то выводится какая либо строка! Как это сделать???
Не понял, что нужно сделать? Опишите задание более подробно. Лучше с примерами.

Просто вывести сообщение, если длина введенной строки >6?
Код:
if(strlen(s)>6) cout<<"Soobshenie\n";
Нет?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 30.05.2009, 14:44   #3
Sasuke-sama
Пользователь
 
Регистрация: 22.05.2009
Сообщений: 63
По умолчанию

Ввести с клавиатуры строку символов S1. Признак окончания ввода строки - нажатие клавиши "Ввод". Программа должна содержать перегруженную операцию «=», использование которой скопирует S1 в S2 .
Исходную и преобразованную строки вывести в файл, если Длина L >6-и, то выделяется подстрока { } скобках;
Sasuke-sama вне форума Ответить с цитированием
Старый 30.05.2009, 14:51   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
если Длина L >6-и, то выделяется подстрока { } скобках;
Что за L, которую я не нашел в коде, и что за подстрока {}?

Приведите примеры того, что вводится и того, что должно при этом выводиться.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 30.05.2009, 14:52   #5
Sasuke-sama
Пользователь
 
Регистрация: 22.05.2009
Сообщений: 63
По умолчанию

L - длина массива навен))
Sasuke-sama вне форума Ответить с цитированием
Старый 30.05.2009, 14:54   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Sasuke-sama
L - длина массива навен))
Вам лучше знать.
Вторую часть поста проигнорировали? Или предлагаете мне самому задание додумывать?

Хорошо. Тогда задам вопрос по-другому: в чем проблема и что не получается?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 30.05.2009, 15:03   #7
Sasuke-sama
Пользователь
 
Регистрация: 22.05.2009
Сообщений: 63
По умолчанию

L - длина введённой строки (количество элементов в этой строке), Эта программа делает так, если длина чётная , то она убирает из введённой строки 1 и последний элемент, а мне надо чтобы она делала так, что если количество элементов больше L, то она бы выводила на экран, часть этой строки(например с 3-5 элемент)
Sasuke-sama вне форума Ответить с цитированием
Старый 30.05.2009, 15:08   #8
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Sasuke-sama
а мне надо чтобы она делала так, что если количество элементов больше L, то она бы выводила на экран, часть этой строки(например с 3-5 элемент)
Ну так у вас есть длина строки. Вычитаете из нее длину строки, которую нужно получить и делите это пополам. Получаете индекс символа, с которого нужно начинать вывод. Ну а индекс конечного символа будет длина строки - это число. Ну там, может, где-то еще +-1 нужно.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 30.05.2009, 15:37   #9
Sasuke-sama
Пользователь
 
Регистрация: 22.05.2009
Сообщений: 63
По умолчанию

Что, обозначает это часть проги:
Код:
{
	int i=0;
	if ((strlen(str)%2==0)&(strlen(str)>=4))
	{
		for(i=0;i<strlen(str)-4;i++)
		str_return[i]=str[i+2];
		str_return[i]='\0';
	} else strcpy(str_return,str);
	return str_return;
}
И как вывести например с 3-5 элемент строки??
Sasuke-sama вне форума Ответить с цитированием
Старый 30.05.2009, 15:50   #10
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Sasuke-sama
Что, обозначает это часть проги:
Интересно. А кому, как не вам, это знать?
Код:
int i=0;
	if ((strlen(str)%2==0)&(strlen(str)>=4))  // если длина четная и больше 3
        // кстати, тут должно быть '&&'
	{
		for(i=0;i<strlen(str)-4;i++) 
		str_return[i]=str[i+2];  // пишем в результирующую строку начиная со 2-го символа
		str_return[i]='\0';  // в конец дописываем символ конца строки
	} else strcpy(str_return,str);
	return str_return;
Если программу писали не вы, то разберитесь в ней. А если вы, то таких вопросов возникать не должно.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
выборка из БД xvipx Microsoft Office Excel 13 30.01.2009 12:43
Выборка по среднему Kip Microsoft Office Access 3 11.08.2008 21:56
Выборка из таблицы ivp88 БД в Delphi 5 12.01.2008 14:36
выборка Ser_gl Microsoft Office Excel 1 24.08.2007 20:49
Выборка John_chek БД в Delphi 10 27.06.2007 08:43