Beispiel #1
0
/****************************************************************************
  Возвращается строка, состоящая из символов строки-аргумента s, начина
  с первого (индекс 0) и длиной nch. Если длина исходной строки недостаточна,
  то результат будет содержать соответственно меньшее количество символов.
*****************************************************************************/
const UCString lem::left( const UCString &s, int NCH )
{
 LEM_CHECKIT_Z(NCH>=0);

 const int l=s.length();

 if( l==NCH )
  {
   return s;
  }
 else if( NCH<=0 )
  {
   return UCString();
  }
 else
  {
   UCString res;
   const int nch = NCH>l ? l : NCH;

   for( int i=0; i<nch; i++ )
    res.set_dir( i, s[i] );

   res.set_dir( nch, '\0' );
   res.calc_hash();
   return res;
  }
}
Beispiel #2
0
/*****************************************************************************
  Возвращается строка, состоящая из последних nch символов строки-аргумента s.
  Если длина исходной строки недостаточна, то результат будет содержать
  соответственно меньшее количество символов.
******************************************************************************/
const UCString lem::right( const UCString &s, int NCH )
{
 LEM_CHECKIT_Z(NCH>=0);
 UCString res;

 if( NCH<=0 )
  return res;

 const int l=s.length();
 const int nch = NCH>l ? l : NCH;

 int i0=l-nch;
 for( int i=0; i<nch; i++ )
  res.set_dir( i, s[i+i0] );

 res.set_dir( nch, '\0' );
 res.calc_hash();
 return res;
}