Информатика и технология программирования


Шаг Строки -элементы таблицы - часть 3


}


String String::operator+(String &#38two)
{ return((*this) + two.Str); }


int String::operator[](char *sub)
{
int n,i;
if (Str==NULL) return(-1);
for (n=0; Str[n]!=0; n++)
{
for (i=0; Str[n+i]!=0; i++)
if (Str[n+i] !=sub[i]) break;
if (sub[i]==0) return(n);
}
return(-1);
}


int String::operator[](String &#38two)
{
if (Str==NULL || two.Str==NULL) return(-1);
return((*this)[two.Str]);
}


String String::operator()(int nn)
{
String ss;
if (Str==NULL) return(ss);
if (nn &#62=FSize()) return(ss);
FromString(Str + nn);
return(ss);
}


String String::operator()(int nn,int sz)
{
String ss;
if (Str==NULL) return(ss);
if (nn &#62=FSize()) return(ss);
if (nn + sz &#62=FSize()) return(ss);
ss.Str = new char[sz+1];
if (ss.Str==NULL) return(ss);
strncpy(ss.Str,Str+nn,sz);
return(ss);
}


String &#38String::operator=(String &#38right)
{
if (Str !=NULL) delete(Str);
Str = new char[strlen(right.Str)+1];
if (Str==NULL) return(*this);
strcpy(Str,right.Str);
return(*this);
}


String &#38String::operator=(char *p)
{
if (Str !=NULL) delete(Str);
Str = new char[strlen(p)+1];
if (Str==NULL) return(*this);
strcpy(Str,p);
return(*this);
}


int String::operator int()
{
return(FSize());
}


String::String(String &#38right)
{
if (right.Str==NULL) { Str = NULL; return; }
Str = new char[strlen(right.Str)+1];
if (Str==NULL) return;
strcpy(Str,right.Str);
}


int String::operator &#60 (String &#38two)
{ return (Compare(&#38two) == -1); }


int String::operator &#62 (String &#38two)
{ return (Compare(&#38two) == 1); }


int String::operator &#60=(String &#38two)
{ return (Compare(&#38two) != 1); }


int String::operator &#62=(String &#38two)
{ return (Compare(&#38two) != -1); }


int String::operator ==(String &#38two)
{ return (Compare(&#38two) == 0); }


int String::operator != (String &#38two)
{ return (Compare(&#38two) != 0); }




Начало  Назад  Вперед



Книжный магазин