Diferencia entre strlen () y sizeof () para cadena en C

Tabla de contenido:

Anonim

¿Qué es strlen ()

strlen () es una función para encontrar la longitud de una cadena. Cuenta los caracteres totales que se presentan en una cadena, eliminando el carácter nulo. El número total de caracteres en la cadena incluye, alfabetos, caracteres especiales y números, con espacios en blanco.

En esta diferencia entre strlen () y sizeof () para la cadena en el tutorial de C, aprenderá:

  • ¿Qué es strlen ()
  • ¿Qué es sizeof ()
  • Sintaxis de strlen ()
  • Sintaxis de sizeof ()
  • Diferencia entre strlen () y sizeof ()

¿Qué es sizeof ()

Sizeof () es una función que se utiliza para calcular el tamaño de su operando. Devuelve el tamaño de una variable particular. Esta función se puede aplicar a cualquier tipo de datos, que contenga tipos primitivos como tipos de puntero y entero, tipos de punto flotante, estructura o unión. La salida del programa que contiene sizeof () puede ser diferente en el sistema de 32 bits y en el sistema de 64 bits.

DIFERENCIAS CLAVE:

  • El método Strlen se usa para encontrar la longitud de una matriz, mientras que el método sizeof () se usa para encontrar el tamaño real de los datos.
  • Strlen () cuenta el número de caracteres en una cadena, mientras que sizeof () devuelve el tamaño de un operando.
  • Strlen () busca el valor nulo de la variable, pero a sizeof () no le importa el valor de la variable.
  • El valor de retorno en strlen () es long int, por otro lado, el valor de retorno en sizeof () no tiene un signo de int.

Sintaxis de strlen ()

strcount = strlen(my_string);

Aquí, my_string es una variable de matriz de caracteres.

Ejemplo de strlen ()

En el siguiente programa en C, hemos declarado una variable de cadena de tipo char. La variable strng se pasa como argumento de la función strlen () para encontrar la longitud de la cadena.

#include#includeint main(){char strng[] = "January";printf("Length of given string is: %lu\n", strlen(strng));}

Producción:

Length of given string is: 7

Sintaxis de sizeof ()

Sintaxis 1)

sizeof (tipo): Tipo = tipo referenciado

Ejemplo de sizeof (tipo):

En el siguiente código, & type da la dirección de la variable (doble x). Se incrementa con 1, lo que da la dirección donde puede almacenar la siguiente variable de tipo x.

La conversión de x en char * y la diferencia le permitirá conocer el número total de variables de tipo char almacenadas en la memoria. Hemos utilizado getchar () para leer el carácter.

#include#define my_sizeof(type) (char *)(&type+1)-(char*)(&type)int main(){double x;printf("%ld", my_sizeof(x));getchar();return 0;}

producción:

8

Sintaxis 2)

sizeof (nombre-variable): nombre-variable = nombre de la variable que desea determinar el tamaño.

En el programa C a continuación, estamos imprimiendo el tipo de datos de tamaño char. La instrucción Printf contiene la función sizeof con el argumento char.

Ejemplo de sizeof (nombre-variable):

#includeint main(){printf("sizeof(char) = %d\n\n", sizeof(char));return 0;}

Producción:

sizeof(char) = 1

Sintaxis 3)

sizeof (expresión): Expresión = Expresión que tienes que evaluar.

Ejemplo de sizeof (expresión):

En el programa siguiente, primero calculamos e imprimimos el tamaño de la variable. Después de esto, evaluamos la expresión, la almacenamos en la variable a y mostramos el resultado en la declaración printf.

#includeint main() {char p = 'S';double q = 4.65;printf("Size of variable p : %d\n",sizeof(p));printf("Size of an expression : %d\n",sizeof(p+q));int a = (int)(p+q);printf("Size of explicitly converted expression : %d\n",sizeof(a));return 0;}

Producción:

Size of variable p : 1Size of an expression : 8Size of explicitly converted expression : 4

Diferencia entre strlen () y sizeof ()

Aquí están las diferencias importantes entre strlen () y sizeof ():

Strlen () Tamaño de()
Strlen () es una función predefinida, que se define en un archivo de encabezado conocido como string.h. Sizeof () es un operador unario o expresión en tiempo de compilación que calcula la cantidad de memoria ocupada por una variable.
Este método se usa para encontrar la longitud de una matriz de cadena o carácter. Este método se utiliza para encontrar el tamaño real de los datos (asignados) en bytes.
Cuenta el número de caracteres en una cadena eliminando valores nulos. Devuelve el tamaño de un operando, no la longitud de la cadena (incluidos los valores nulos).
Asigna memoria en el tiempo de ejecución y busca el valor nulo de la variable. Sizeof () no se preocupa por el valor de la variable.
La función Strlen () solo funciona con cadenas de caracteres La función Sizeof () devuelve la cantidad de memoria asignada en bytes.
El valor de retorno en strlen () es long int. El valor de retorno en sizeof () no tiene un signo int.
Solo hay una sintaxis de strlen () que es int strlen (const char * str); Hay tres sintaxis de sizeof () 1) sizeof (tipo), 2) sizeof (nombre-variable) y 3) sizeof (expresión):