stroka_id stroka_id operator stroka_id two перегрузка операции удалени

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
stroka_id& stroka_id::operator - (stroka_id &two) // перегрузка операции удаления ( из первого операдна удаляются все символы, входящие во второй операнд)
{
cout<<"отработала stroka_id& stroka_id::operator - (stroka_id &two) "<<endl;
int j=0;
char temp[DlinStr]; // строка после изменения/вычитания (т.е. страка после вычитания из нее требуемых букв)
char *Yktemp=two.GetYkaz(); // указатель на строку,которую будем вычитать
for(int i=0;i<DlinStr; i++)
{
if(!( strchr(Yktemp,ykaz[i]) )) // берем i-й символ нашей уменьшаемой строки (ykaz[i]) и смотрим содержится ли он в строке, которую мы вычитаем (Yktemp)
temp[j++]=ykaz[i]; // если он не содержиться в ней тогда записываем его в нашу строку temp (так получаем строчку ykaz-ykaz.two
}
temp[j]='\0';
//char *strchr(const char *, int); ищет символ в строке, начиная с головы и возвращает его адрес, или NULL если не найден
stroka_id *tmp = new stroka_id(temp);
return *tmp;
}