Хелпикс

Главная

Контакты

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





Вычисление длины строк. Копирование строк. Сравнение строк



 

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

 

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

На экзамене в качестве дополнительного вопроса  каждому студенту будет предлагаться код одной из этих функций. Необходимо уметь объяснить:

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

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

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

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

Уровень I — минимальный, обязательный для получения положительной оценки ("удовлетворительно").

Уровень II — для получения оценок "хорошо" и "отлично".

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

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

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

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

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

       Уровень 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 При использовании или копировании материалов прямая ссылка на сайт обязательна.