Здравствуйте. Задача: создать класс символьной строки и несколько объектов разработанного класса (a,b,c). Реализовать для объектов данного класса перегрузку оператора operator-
(с = a - b
: a = "Privet"
, b = "vet"
-> c = "Pri"
)
Не получается придумать, как перегрузить оператор -
, помогите пожалуйста.
#include "stdafx.h"
#include <iostream>
#include <string>
#pragma warning(disable : 4996)
using namespace std;
class String
{
private:
char *str;
int len;
public:
String();
String(char *s);
String(const String &str);
~String();
String operator - (const String &op);
void input();
void output();
};
String::String()
{
len = 0;
str = new char[1];
*str = 0;
}
String::String(char *s)
{
len = strlen(s);
str = new char[len + 1];
for (int i = 0; i < len; i++)
str[i] = s[i];
str[len] = '\0';
}
String::String(const String &a)
{
len = a.len;
str = new char[len + 1];
for (int i = 0; i < len; i++)
str[i] = a.str[i];
str[len] = '\0';
}
String::~String()
{
if (str) delete[] str;
}
String String::operator - (const String &op)
{
//???
}
void String::output()
{
cout << "new string: " << str << endl;
}
void String::input()
{
cout << "input string: ";
cin>>str;
}
int main()
{
String a("laba");
String b("ba");
String c;
c = a - b;
c.output();
return 0;
system("pause");
}
Хм... не совсем четко поставлено условие.
Я бы сделал что-то вроде
String String::operator - (const String &op)
{
String res(*this);
char * where = strstr(res.str,op.str);
if (where)
{
memmove(where,where+strlen(op.str),
strlen(where+strlen(op.str))+1);
res.len = strlen(res.str);
}
return res;
}
Т.е. удаление первого вхождения op
. Всякие проверки безопасности (ненулевые указатели и т.п.) я для простоты опустил.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Запускаю приложение JOGL в NetBeans 81, в методе main одна строчка:
Все никак не могу понять логику того, как JoinColumn определяет какую колонку с какой надо связать
Здравствуйте, помогите Я прочитал строку из файла и теперь мне надо разбить ее на слова по пробелу, так же в слове поменять буквы местами и записать...