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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2013, 20:40   #1
Alexandr-
Пользователь
 
Регистрация: 04.03.2013
Сообщений: 79
По умолчанию Удаление строки

Возможно ли с помощью операции '-' удалить 1 строку из другой? Например, в данном наглядном коде, если с помощью операции + сложить 2 строки, то 1 строка запишется в конец другой, но если пишу -, то выдаются ошибки... Я понимаю, что можно удалить по другому(например, как ещё ниже в коде), но в задании нужно именно в помощью операции -.

Код:
#include <iostream>
#include <string>
using namespace std;
int main () {
	string str1,str2,n;
	cout<<"vvedite"<<endl;
	cin>>str1;
	cout<<"vvedite"<<endl;
	cin>>str2;
	str1=str1+str2;
	cout<<str1;
//---------------
	n=str1-str2;
	cout<<n;

	system("pause"); return 0; }



Код:
#include<iostream>
#include<algorithm>
#include<string>
#include<iterator>
using namespace std;
int main () {

string str("sometext()"); 
cout << str << '\n';

str.erase(str.find('t'), 6);
cout << str;
system("pause"); return 0; }
Alexandr- вне форума Ответить с цитированием
Старый 15.11.2013, 05:20   #2
SaLoKiN
Форумчанин
 
Аватар для SaLoKiN
 
Регистрация: 19.09.2013
Сообщений: 597
По умолчанию

Цитата:
Возможно ли с помощью операции '-' удалить 1 строку из другой?
перегрузка оператора "-" вам думаю может помочь
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!!
SaLoKiN вне форума Ответить с цитированием
Старый 15.11.2013, 11:52   #3
Alexandr-
Пользователь
 
Регистрация: 04.03.2013
Сообщений: 79
По умолчанию

В перегрузке оператора мне также придется с помощью "-" вычитать их и также работать не будет.
Alexandr- вне форума Ответить с цитированием
Старый 15.11.2013, 12:13   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
мне также придется с помощью "-" вычитать их
Откуда такие сведения? Ты пробовал?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.11.2013, 12:47   #5
Alexandr-
Пользователь
 
Регистрация: 04.03.2013
Сообщений: 79
По умолчанию

Ну я перегрузку совсем плоховато понял, но все же вот пример с простыми числами:
Код:
#include <iostream>
#include <string>
using namespace std;
class Arr {
int x, y, z; 
public:
Arr operator-(Arr t);

void show ();

void assign (int mx);

};
Arr Arr::operator-(Arr t)
{
Arr temp;
temp.x = x-t.x;

return temp;}



void Arr::show ()
{
cout << x << "\n";
}
void Arr::assign (int mx)
{
x = mx;
}
int main()
{ 
Arr a, b, c;
a.assign (10); 
b.assign (5);
cout<<"a= "; a.show(); 
cout<<"b= "; b.show();
cout<<"c=a-b  c= ";
c = a-b; 
c.show();
system("pause"); return 0;
}
В итоге просто используем операцию "-". Или можно делать по другому как-то?
Alexandr- вне форума Ответить с цитированием
Старый 15.11.2013, 13:00   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Или можно делать по другому как-то?
Конечно можно. Ты же описываешь действие оператора.
Напиши temp.x = x-t.x-x; и твоя перегрузка начнет дважды отнимать иксы, а это уже ведь не стандартно?
Точно так же со строками. Напишешь в этом обработчике удаление всех входящих в строку подстрок, которые нужно вычесть и получишь новый объект строки без подстрок.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление строки в C++. Alifee Помощь студентам 1 17.12.2011 02:52
Удаление строки женя2010 Microsoft Office Excel 9 23.04.2010 16:23
Удаление элементов строки s2 из строки s1 Ueshua Общие вопросы C/C++ 4 20.12.2009 13:06
Удаление из строки program123 Помощь студентам 4 21.05.2009 12:52
Удаление строки Minton87 Общие вопросы Delphi 4 07.05.2009 02:32