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