Рубрики

Как найти длину строки без string.h и цикла в C?

Найдите длину строки без использования каких-либо циклов и string.h в C. Предполагается, что ваша программа будет вести себя следующим образом:

Enter a string: GeeksforGeeks (Say user enters GeeksforGeeks)
Entered string is: GeeksforGeeks
Length is: 13

Вы можете предположить, что длина введенной строки всегда меньше 100.

Следующее является решением.

#include <stdio.h>

  

int main()

{

    char str[100];

    printf("Enter a string: \n");

    gets(str);

    printf("Entered string is:%s\n", str);

    printf( "\rLength is: %d",strlen(str));

  

    return 0;

}

Выход:

Enter a string: GeeksforGeeks
Entered string is: GeeksforGeeks
Length is: 13

Идея состоит в том, чтобы использовать возвращаемые значения printf () и gets ().
gets () возвращает полученную строку.
printf () возвращает количество символов, успешно записанных на выходе .

В приведенной выше программе get () возвращает введенную строку. Мы печатаем длину, используя первый printf. Второй вызов printf () вызывает gets () и печатает введенную строку, используя возвращаемое значение gets (), он также печатает 20 дополнительных символов для печати «Введенная строка:» и «/ n». Вот почему мы вычитаем 20 из возвращенного значения второго printf и получаем длину.

Эта статья предоставлена Умеш Шарма . Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Еще один способ найти длину строки без использования string.h или циклов — это Рекурсия.
Следующая программа выполняет поиск длины строки с использованием рекурсии.

#include <stdio.h>

  

void LengthofString(int n,char *string)

    if(string[n] == '\0'

    {

        printf("%i",n); 

        return;

    }

      

    LengthofString(n+1,string);

    // Е ( "% С", строка [п]);

}

  

int main()

    char string[100];

    printf("Give a string : \n"); 

    scanf("%s",string);

    printf("Entered string is:%s\n", string);

    LengthofString(0,string);

      

    return 0;

}

Функция LengthofString вызывает себя до тех пор, пока символ строки не станет нулевым символом, который он вызывает сам, когда он вызывает себя, он увеличивает значение переменной 'n', в которой хранится число вызовов функции и когда она встречает нулевое значение символ функция печатает значение 'n' и возвращает обратно в том же направлении, в котором она была выполнена.

Рекомендуемые посты:

Как найти длину строки без string.h и цикла в C?

0.00 (0%) 0 votes