Напишите свой аналог функций 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; }
Объяснение кода листинга программы
- В функции mystrlen1 происходит поиск конца строки, начиная с первого символа. При каждом шаге цикла переменная t увеличивается на единицу, а переменная s остается неизменной.
- В функции mystrlen2 происходит поиск конца строки, начиная со второго символа. При каждом шаге цикла переменная s увеличивается на единицу, а переменная i увеличивается на единицу при каждом ненулевом символе.
- В функции mystrlen3 происходит рекурсивный вызов функции mystrlen3 для каждого следующего символа строки, пока не будет достигнут конец строки. Если текущий символ является нулевым, то возвращается 0, иначе возвращается 1 плюс результат вызова функции mystrlen3 для следующего символа.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д