Хелпикс

Главная

Контакты

Случайная статья





Материал для самостоятельного изучения



Материал для самостоятельного изучения

Алгоритмы обработки строк

Изучить, как работает каждая из приведенных функции для выполнения типичных операций со строками (по назначению похожие на библиотечные функции Си strlen, strcpy и strcmp).

На экзамене необходимо уметь объяснить:

а) как работает данная функция (где следует, объяснить приоритеты выполняемых операций),

б) как можно ее вызвать (на примере), и

в) как воспользоваться результатом работы функции (на примере).

Реализации функций по сложности разбиты на два уровня.

Рассматриваются три типа функций:

а) вычисление длины строки,

б) копирование строки,

в) сравнение строк.

Вычисление длины строк

       Уровень I

int strlen1(char*s){

int n;

for(n=0;*s!='\0';s++)

n++;

return n;

}

 

int strlen2(char*s){

char *p=s;

while(*p!='\0')

  p++;

return p-s;

}

Копирование строк

       Уровень I

 

void strcpy1(char* s, char* t){

 int i;

i=0;     

while((s[i]=t[i])!='\0')

i++;  

}

 

void strcpy2(char* s, char* t){

   while((*s=*t)!='\0'){

          s++;t++;

    }

}

       Уровень II

void strcpy3(char* s, char* t){

  while((*s++=*t++)!='\0');

}

 

 void strcpy4(char* s, char* t){

while(*s++=*t++);

}

Сравнение строк

       Уровень I

 

int strcmp1(char *s, char*t){

int i;

for(i=0; s[i]==t[i];i++)

 if(s[i]=='\0')    

    return 0;

return s[i]-t[i];

}

       Уровень II

 

int strcmp2(char *s, char*t){

          for(; *s==*t;s++,t++)

  if(*s=='\0')    

      return 0;

return *s-*t;

}

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.