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

ยฟQuรฉ es strlen()?

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

ยฟQuรฉ es el tamaรฑo de()?

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 entero y tipos de puntero, 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 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() es unsigned 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 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 cadena.

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

Salida:

Length of given string is: 7

Sintaxis de tamaรฑo de()

Sintaxis 1)

tamaรฑo de (tipo): Tipo = tipo referenciado

Ejemplo de tamaรฑo de (tipo):

En el cรณdigo siguiente, &type proporciona la direcciรณn de la variable (doble x). Se incrementa en 1, lo que proporciona la direcciรณn donde puede almacenar la siguiente variable de tipo x.

Encasillar x en char* y tomar 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<stdio.h> 
#define my_sizeof(type) (char *)(&type+1)-(char*)(&type) 
int main() 
{ 
    double x; 
    printf("%ld", my_sizeof(x)); 
    getchar(); 
    return 0; 
}

salida:

8

Sintaxis 2)

tamaรฑo de (nombre-variable): Nombre de variable = nombre de la variable cuyo tamaรฑo desea determinar.

En el siguiente programa C, estamos imprimiendo el tipo de datos size char. La declaraciรณn Printf contiene la funciรณn sizeof con el argumento char.

Ejemplo de tamaรฑo de (nombre-variable):

#include<stdio.h>
int main()
{
	printf("sizeof(char) = %d\n\n", sizeof(char));
		
	return 0;
}

Salida:

sizeof(char) = 1

Sintaxis 3)

tamaรฑo de (expresiรณn): Expresiรณn= Expresiรณn que tienes que evaluar.

Ejemplo de tamaรฑo de (expresiรณn):

En el siguiente programa, 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.

#include<stdio.h>
int 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;
}

Salida:

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

Diferencia entre strlen() y sizeof()

Estas son las diferencias importantes entre strlen() y sizeof():

Diferencia 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 un variable.
Este mรฉtodo se utiliza 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 la cantidad 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 tiempo de ejecuciรณn y busca el valor nulo de la variable. A Sizeof() no le importa el valor de la variable.
La funciรณn Strlen() funciona sรณlo 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() es int sin signo.
Sรณlo 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):

Resumir este post con: