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); }
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; }
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