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

Sommario:

Anonim

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.

In questa differenza tra strlen () e sizeof () per la stringa nel tutorial C, imparerai:

  • Cos'è strlen ()
  • Cos'è sizeof ()
  • Sintassi di strlen ()
  • Sintassi di sizeof ()
  • Differenza tra strlen () e sizeof ()

Cos'è sizeof ()

Sizeof () è una funzione che viene 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 tipi interi e puntatori, 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.

PRINCIPALI DIFFERENZE:

  • 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 nullo 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 dell'array di caratteri.

Esempio di strlen ()

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

#include#includeint 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)

sizeof (type): Type = tipo di riferimento

Esempio di sizeof (type):

Nel codice seguente, & 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.

Digitando x in char * e prendendo la differenza ti permetterà di conoscere il numero totale di variabili di tipo char immagazzinate in memoria. Abbiamo usato getchar () per leggere il carattere.

#include#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 che desideri determinare la dimensione.

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

Esempio di sizeof (nome-variabile):

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

Produzione:

sizeof(char) = 1

Sintassi 3)

sizeof (espressione): Expression = Espressione che devi valutare.

Esempio di sizeof (espressione):

Nel programma seguente, stiamo prima calcolando e stampando la dimensione della variabile. Successivamente, stiamo valutando l'espressione, memorizzandola nella variabile a e visualizzando il risultato nell'istruzione 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;}

Produzione:

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

Differenza tra strlen () e sizeof ()

Ecco le differenze importanti 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 una 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 (compresi i valori null).
Alloca memoria in fase di esecuzione e cerca il valore nullo di 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.
C'è 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):