Unterschied zwischen strlen () und sizeof () für string in C.

Inhaltsverzeichnis:

Anonim

Was ist strlen ()

strlen () ist eine Funktion zum Ermitteln der Länge eines Strings. Es zählt die Gesamtzahl der Zeichen, die in einer Zeichenfolge dargestellt werden, wobei das Nullzeichen entfernt wird. Die Gesamtzahl der Zeichen in der Zeichenfolge umfasst Alphabete, Sonderzeichen und Zahlen mit Leerzeichen.

In diesem Unterschied zwischen strlen () und sizeof () für string im C-Tutorial lernen Sie:

  • Was ist strlen ()
  • Was ist sizeof ()
  • Syntax von strlen ()
  • Syntax von sizeof ()
  • Unterschied zwischen strlen () und sizeof ()

Was ist sizeof ()

Die Größe von () ist eine Funktion, mit der die Größe ihres Operanden berechnet wird. Es gibt die Größe einer bestimmten Variablen zurück. Diese Funktion kann auf jeden Datentyp angewendet werden, der primitive Typen wie Ganzzahl- und Zeigertypen, Gleitkommatypen, Strukturen oder Vereinigungen enthält. Die Ausgabe des Programms, das sizeof () enthält, kann auf dem 32-Bit-System und dem 64-Bit-System unterschiedlich sein.

WICHTIGE UNTERSCHIEDE:

  • Die Strlen-Methode wird verwendet, um die Länge eines Arrays zu ermitteln, während die sizeof () -Methode verwendet wird, um die tatsächliche Datengröße zu ermitteln.
  • Strlen () zählt die Anzahl der Zeichen in einer Zeichenfolge, während sizeof () die Größe eines Operanden zurückgibt.
  • Strlen () sucht nach dem Nullwert der Variablen, aber sizeof () kümmert sich nicht um den Variablenwert.
  • Der Rückgabewert in strlen () ist long int. Der Rückgabewert in sizeof () ist int ohne Vorzeichen.

Syntax von strlen ()

strcount = strlen(my_string);

Hier ist my_string eine Zeichenarrayvariable.

Beispiel für strlen ()

Im folgenden C-Programm haben wir eine Zeichenfolgenvariable vom Typ char deklariert. Die Variable Strng wird als Argument der Funktion strlen () übergeben, um die Länge der Zeichenfolge zu ermitteln.

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

Ausgabe:

Length of given string is: 7

Syntax von sizeof ()

Syntax 1)

sizeof (Typ): Typ = referenzierter Typ

Beispiel für sizeof (Typ):

Im folgenden Code gibt & type die Adresse der Variablen an (doppeltes x). Es wird mit 1 erhöht, was die Adresse angibt, an der Sie die nächste Variable vom Typ x speichern können.

Wenn Sie x in char * eingeben und die Differenz nehmen, können Sie die Gesamtzahl der im Speicher gespeicherten Variablen vom Typ char ermitteln. Wir haben getchar () verwendet, um Zeichen zu lesen.

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

Ausgabe:

8

Syntax 2)

sizeof (Variablenname): Variablenname = Name der Variablen, deren Größe Sie bestimmen möchten.

Im folgenden C-Programm drucken wir den Datentyp size char. Die Anweisung printf enthält die Funktion sizeof mit dem Argument char.

Beispiel für sizeof (Variablenname):

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

Ausgabe:

sizeof(char) = 1

Syntax 3)

sizeof (Ausdruck): Ausdruck = Ausdruck, den Sie auswerten müssen.

Beispiel für sizeof (Ausdruck):

Im folgenden Programm berechnen und drucken wir zuerst die Größe der Variablen. Danach werten wir den Ausdruck aus, speichern ihn in der Variablen a und zeigen das Ergebnis in der printf-Anweisung an.

#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;}

Ausgabe:

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

Unterschied zwischen strlen () und sizeof ()

Hier sind die wichtigen Unterschiede zwischen strlen () und sizeof ():

Strlen () Größe von()
Strlen () ist eine vordefinierte Funktion, die in einer Header-Datei namens string.h definiert ist. Sizeof () ist ein unärer Operator oder Ausdruck zur Kompilierungszeit, der die Größe des von einer Variablen belegten Speichers berechnet.
Diese Methode wird verwendet, um die Länge eines Arrays aus Zeichenfolgen oder Zeichen zu ermitteln. Diese Methode wird verwendet, um die tatsächliche Größe der (zugewiesenen) Daten in Bytes zu ermitteln.
Es zählt die Anzahl der Zeichen in einer Zeichenfolge, wobei Nullwerte eliminiert werden. Es gibt die Größe eines Operanden zurück, nicht die Zeichenfolgenlänge (einschließlich Nullwerte).
Es reserviert zur Laufzeit Speicher und sucht nach dem Nullwert der Variablen. Sizeof () kümmert sich nicht um den Variablenwert.
Die Funktion Strlen () funktioniert nur mit Zeichenfolgen Die Funktion Sizeof () gibt die in Bytes zugewiesene Speichermenge zurück.
Der Rückgabewert in strlen () ist long int. Der Rückgabewert in sizeof () ist int ohne Vorzeichen int.
Es gibt nur eine Syntax von strlen (), nämlich int strlen (const char * str); Es gibt drei Syntaxen von sizeof () 1) sizeof (Typ), 2) sizeof (Variablenname) und 3) sizeof (Ausdruck):