Verschil tussen strlen() en sizeof() voor string in C
Wat is strlen()
strlen() is een functie om de lengte van een string te vinden. Het telt het totale aantal tekens dat in een tekenreeks wordt weergegeven, waardoor het nulteken wordt geëlimineerd. Het totale aantal tekens in een tekenreeks omvat alfabetten, speciale tekens en cijfers, met spaties.
In dit verschil tussen strlen() en sizeof() voor string in C-zelfstudie, leer je:
- Wat is strlen()
- Wat is sizeof()
- Syntaxis van strlen()
- Syntaxis van sizeof()
- Verschil tussen strlen() en sizeof()
Wat is sizeof()
De sizeof() is een functie die wordt gebruikt om de grootte van zijn operand te berekenen. Het geeft de grootte van een bepaalde variabele terug. Deze functie kan worden toegepast op elk gegevenstype dat primitieve typen bevat, zoals integer- en pointertypen, typen met drijvende komma, structuur of unie. De uitvoer van het programma dat sizeof() bevat, kan verschillen op het 32-bits systeem en het 64-bits systeem.
BELANGRIJKE VERSCHILLEN:
- De methode Strlen wordt gebruikt om de lengte van een array te vinden, terwijl de methode sizeof() wordt gebruikt om de werkelijke grootte van gegevens te vinden.
- Strlen() telt het aantal tekens in een tekenreeks, terwijl sizeof() de grootte van een operand teruggeeft.
- Strlen() zoekt naar de null-waarde van variabele, maar sizeof() geeft niet om de variabelewaarde.
- Retourwaarde in strlen() is long int, aan de andere kant is retourwaarde in sizeof() unsigned int.
Syntaxis van strlen()
strcount = strlen(my_string);
Hier is my_string een tekenreeksvariabele.
Voorbeeld van strlen()
In het onderstaande C-programma hebben we een stringvariabele van het type char gedeclareerd. De variabele Strng wordt doorgegeven als argument van de functie strlen() om de lengte van de string te vinden.
#include<stdio.h> #include<string.h> int main() { char strng[] = "January"; printf("Length of given string is: %lu\n", strlen(strng)); }
Uitvoer:
Length of given string is: 7
Syntaxis van sizeof()
Syntaxis 1)
sizeof(type): Type=waarnaar wordt verwezen
Voorbeeld van sizeof(type):
In de onderstaande code geeft &type het adres van de variabele (dubbele x). Het wordt verhoogd met 1 wat het adres geeft waar u de volgende variabele van het type x kunt opslaan.
Door x in char* te typen en het verschil te nemen, weet je het totale aantal variabelen van het type char dat in het geheugen is opgeslagen. We hebben getchar() gebruikt om karakters te lezen.
#include<stdio.h> #define my_sizeof(type) (char *)(&type+1)-(char*)(&type) int main() { double x; printf("%ld", my_sizeof(x)); getchar(); return 0; }
uitvoer:
8
Syntaxis 2)
sizeof(variabele-naam): Variabelenaam=naam van de variabele waarvan u de grootte wilt bepalen.
In het onderstaande C-programma drukken we het gegevenstype size char af. Printf-instructie bevat sizeof-functie met argument char.
Voorbeeld van sizeof(variabele-naam):
#include<stdio.h> int main() { printf("sizeof(char) = %d\n\n", sizeof(char)); return 0; }
Uitvoer:
sizeof(char) = 1
Syntaxis 3)
sizeof(expression): Expression=Expressie die je moet evalueren.
Voorbeeld van sizeof(expression):
In het onderstaande programma berekenen en printen we eerst de grootte van de variabele. Hierna evalueren we de uitdrukking, slaan deze op in variabele a en geven het resultaat weer in de instructie 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; }
Uitvoer:
Size of variable p : 1 Size of an expression : 8 Size of explicitly converted expression : 4
Verschil tussen strlen() en sizeof()
Hier zijn de belangrijke verschillen tussen strlen() en sizeof():
C Taal
- Verschil tussen asbest en glasvezel
- Verschil tussen structuur en unie
- C# versus C++:wat is het verschil tussen C# en C++?
- Verschil tussen C en C ++
- Verschil tussen C en Java
- Python versus JavaScript:verschil tussen JavaScript en Python
- Python versus Ruby:verschil tussen Ruby en Python
- Python 2 versus Python 3:Wat is het verschil tussen Python 2.x en Python 3.x?
- Het verschil tussen gelijkstroom- en wisselstroommotoren
- Verschil tussen solderen en solderen
- Verschil tussen 2-takt en 4-takt motoren