¿Cómo encontrar la longitud de una string sin string.h y loop en C?

Encuentre la longitud de una string sin usar bucles y string.h en C. Se supone que su programa se comporta de la siguiente manera: 

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

Puede suponer que la longitud de la string ingresada es siempre menor que 100.
La siguiente es la solución. 

C

#include <stdio.h>
int main()
{
     
    // entered string
    char ch[50] = "GeeksforGeeks";
   
    // printing entered string
    printf("Entered String is:");
   
    // returns length of string
    // along printing string
    int len
        = printf("%s\n", ch);
   
    printf("Length is:");
   
    // printing length
    printf("%d", len - 1);
}
Producción

Entered String is:GeeksforGeeks
Length is:13

La idea es utilizar los valores de retorno de printf(). 
printf() devuelve el número de caracteres escritos con éxito en la salida .
En el programa anterior, solo usamos la propiedad de printf() ya que devuelve la cantidad de caracteres ingresados ​​​​en la string de array. 
 

Complejidad de tiempo: O(1)

Espacio Auxiliar: O(1)

Otra forma de encontrar la longitud de una string sin usar string.ho loops es Recursion.  
El siguiente programa hace el trabajo de encontrar la longitud de una string usando recursividad. 
 

C

// C program for the above approach
#include <stdio.h>
 
void LengthofString(int n,char *string)
{
    if(string[n] == '\0')
    {
        printf("%i",n);
        return;
    }
     
    LengthofString(n+1,string);
    //printf("%c",string[n]);
}
 
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;
}
Producción

Give a string : 
Entered string is:0
1

Complejidad de tiempo: O(n)

Espacio Auxiliar: O(n)

La función LengthofString se llama a sí misma hasta que el carácter de la string no es un carácter nulo que se llama a sí mismo, cuando se llama a sí mismo aumenta el valor de la variable ‘n’ que almacena el número de veces que se ha llamado a la función y cuando encuentra el nulo carácter, la función imprime el valor de ‘n’ y regresa en la misma dirección en la que se ejecutó.
Este artículo es una contribución de Sumit Singh Chauhan. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *