Differenza tra strlen() e sizeof() per la stringa in C

Cos'è strlen()

strlen() è una funzione per trovare la lunghezza di una stringa. Conta i caratteri totali presentati in una stringa, eliminando il carattere nullo. Il numero totale di caratteri nella stringa include alfabeti, caratteri speciali e numeri, con spazi vuoti.

Cos'è sizeof()

sizeof() è una funzione utilizzata per calcolare la dimensione del suo operando. Restituisce la dimensione di una particolare variabile. Questa funzione può essere applicata a qualsiasi tipo di dati, contenente tipi primitivi come intero e tipi di puntatore, tipi a virgola mobile, struttura o unione. L'output del programma contenente sizeof() potrebbe essere diverso sul sistema a 32 bit e sul sistema a 64 bit.

DIFFERENZE CHIAVE

  • Il metodo Strlen viene utilizzato per trovare la lunghezza di un array mentre il metodo sizeof() viene utilizzato per trovare la dimensione effettiva dei dati.
  • Strlen() conta il numero di caratteri in una stringa mentre sizeof() restituisce la dimensione di un operando.
  • Strlen() cerca il valore null della variabile ma sizeof() non si preoccupa del valore della variabile.
  • Il valore restituito in strlen() è long int, mentre il valore restituito in sizeof() è unsigned int.

Sintassi di strlen()

strcount = strlen(my_string); 

Qui, my_string è una variabile di array di caratteri.

Esempio di strlen()

Nel programma C seguente, abbiamo dichiarato una variabile stringa di tipo char. La variabile Strng viene passata come argomento della funzione strlen() per trovarne la lunghezza stringa.

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

Produzione:

Length of given string is: 7

Sintassi di sizeof()

Sintassi 1)

dimensione(tipo): Tipo= tipo referenziato

Esempio di sizeof(tipo):

Nel codice sottostante, &type fornisce l'indirizzo della variabile (doppia x). Viene incrementato di 1, che fornisce l'indirizzo in cui è possibile memorizzare la variabile successiva di tipo x.

Digitare x in char* e prendere la differenza ti consentirà di conoscere il numero totale di variabili di tipo char archiviate in memoria. Abbiamo usato getchar() per leggere i caratteri.

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

produzione:

8

Sintassi 2)

sizeof(nome-variabile): Nome-variabile= nome della variabile di cui desideri determinare la dimensione.

Nel programma C seguente, stiamo stampando il tipo di dati size char. L'istruzione Printf contiene la funzione sizeof con argomento char.

Esempio di sizeof(nome-variabile):

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

Produzione:

sizeof(char) = 1

Sintassi 3)

dimensionedi(espressione): Expression= Espressione da valutare.

Esempio di sizeof(espressione):

Nel programma seguente, calcoliamo e stampiamo prima la dimensione della variabile. Successivamente, valutiamo l'espressione, la memorizziamo nella variabile a e visualizziamo il risultato nell'istruzione 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;
}

Produzione:

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

Differenza tra strlen() e sizeof()

Ecco le differenze importanti tra strlen() e sizeof():

Differenza tra strlen() e sizeof()

Strlen() Taglia di()
Strlen() è una funzione predefinita, definita in un file di intestazione noto come string.h. Sizeof() è un operatore unario o un'espressione in fase di compilazione che calcola la quantità di memoria occupata da a variabile.
Questo metodo viene utilizzato per trovare la lunghezza di un array di stringhe o caratteri. Questo metodo viene utilizzato per trovare la dimensione effettiva dei dati (allocati) in byte.
Conta il numero di caratteri in una stringa eliminando i valori nulli. Restituisce la dimensione di un operando, non la lunghezza della stringa (inclusi i valori null).
Alloca memoria in fase di esecuzione e cerca il valore nullo della variabile. Sizeof() non si preoccupa del valore della variabile.
La funzione Strlen() funziona solo con stringhe di caratteri La funzione Sizeof() restituisce la quantità di memoria allocata in byte.
Il valore restituito in strlen() è long int. Il valore restituito in sizeof() è unsigned int.
Esiste solo una sintassi di strlen() che è int strlen(const char *str); Esistono tre sintassi di sizeof() 1) sizeof(tipo), 2) sizeof(nome-variabile) e 3) sizeof(espressione):