Напишите свой аналог функций strlen() - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Пожалуйста, помогите написать свой аналог функций strlen()!!!!

Решение задачи: «Напишите свой аналог функций strlen()»

textual
Листинг программы
#include <stdio.h>
 
int mystrlen1(const char * s) {
    const char * t;
    
    for ( t = s; *t; ++t )
        ;
    
    return t - s;
}
 
int mystrlen2(const char * s) {
    int i = 0;
    
    while ( *s++ )
        ++i;
    
    return i;
}
 
int mystrlen3(const char * s) {
    return ( *s ) ? 1 + mystrlen3(s + 1) : 0;
}
 
int main(void) {
    char str[] = "bla bla bla";
    
    printf("String: %s\nmystrlen1: %d\nmystrlen2: %d\nmystrlen3: %d\n", str, mystrlen1(str), mystrlen2(str), mystrlen3(str));
    
    return 0;
}

Объяснение кода листинга программы

  1. В функции mystrlen1 происходит поиск конца строки, начиная с первого символа. При каждом шаге цикла переменная t увеличивается на единицу, а переменная s остается неизменной.
  2. В функции mystrlen2 происходит поиск конца строки, начиная со второго символа. При каждом шаге цикла переменная s увеличивается на единицу, а переменная i увеличивается на единицу при каждом ненулевом символе.
  3. В функции mystrlen3 происходит рекурсивный вызов функции mystrlen3 для каждого следующего символа строки, пока не будет достигнут конец строки. Если текущий символ является нулевым, то возвращается 0, иначе возвращается 1 плюс результат вызова функции mystrlen3 для следующего символа.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.308 из 5
Похожие ответы