Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

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():

Strlen() Sizeof() Strlen() is een vooraf gedefinieerde functie, die is gedefinieerd in een headerbestand dat bekend staat als string.h.Sizeof() is een unaire operator of compile-time-expressie die de hoeveelheid geheugen berekent die door een variabele wordt ingenomen. Deze methode wordt gebruikt om vind de lengte van een array van tekenreeksen of tekens. Deze methode wordt gebruikt om de werkelijke grootte van gegevens (toegewezen) in bytes te vinden. Het telt het aantal tekens in een tekenreeks en elimineert null-waarden. de tekenreekslengte (inclusief null-waarden). Het wijst geheugen toe tijdens runtime en zoekt naar de null-waarde van variabele.Sizeof() geeft niet om de variabelewaarde.Strlen()-functie werkt alleen met tekenreeksenSizeof()-functie retourneert het bedrag van geheugen toegewezen in bytes.Return waarde in strlen() is lang int.Return waarde in sizeof() is unsigned int.Er is slechts één syntaxis van strlen() die int strlen(const char *str);Er zijn drie syntaxis van sizeof() 1) sizeof(type), 2) sizeof(variabele-naam), en 3) sizeof(expres sie):

C Taal

  1. Verschil tussen asbest en glasvezel
  2. Verschil tussen structuur en unie
  3. C# versus C++:wat is het verschil tussen C# en C++?
  4. Verschil tussen C en C ++
  5. Verschil tussen C en Java
  6. Python versus JavaScript:verschil tussen JavaScript en Python
  7. Python versus Ruby:verschil tussen Ruby en Python
  8. Python 2 versus Python 3:Wat is het verschil tussen Python 2.x en Python 3.x?
  9. Het verschil tussen gelijkstroom- en wisselstroommotoren
  10. Verschil tussen solderen en solderen
  11. Verschil tussen 2-takt en 4-takt motoren