Forskjellen mellom strlen() og sizeof() for streng i C
Hva er strlen()
strlen() er en funksjon for å finne lengden på en streng. Den teller totalt antall tegn som presenteres i en streng, og eliminerer null-tegnet. Det totale antallet tegn i strengen inkluderer alfabeter, spesialtegn og tall, med tomme mellomrom.
Hva er størrelsen på()
Størrelsen på() er en funksjon som brukes til å beregne størrelsen på operanden. Den returnerer størrelsen på en bestemt variabel. Denne funksjonen kan brukes på alle datatyper, som inneholder primitive typer som heltall og pekertyper, flyttallstyper, struktur eller forening. Utdataene til programmet som inneholder sizeof() kan være forskjellig på 32-biters og 64-biters system.
HOVEDFORSKJELL
- Strlen-metoden brukes til å finne lengden på en matrise, mens sizeof()-metoden brukes til å finne den faktiske størrelsen på data.
- Strlen() teller antall tegn i en streng mens sizeof() returnerer størrelsen på en operand.
- Strlen() ser etter nullverdien til variabel, men sizeof() bryr seg ikke om variabelverdien.
- Returverdi i strlen() er long int, på den annen side er returverdi i sizeof() usignert int.
Syntaks for strlen()
strcount = strlen(my_string);
Her er my_string en tegnarrayvariabel.
Eksempel på strlen()
I C-programmet nedenfor har vi erklært strengvariabel av typen char. Strng-variabel er en godkjent som et argument for strlen()-funksjonen for å finne lengden på string.
#include<stdio.h> #include<string.h> int main() { char strng[] = "January"; printf("Length of given string is: %lu\n", strlen(strng)); }
Utgang:
Length of given string is: 7
Syntaks for sizeof()
Syntaks 1)
sizeof(type): Type= referert type
Eksempel på størrelse på(type):
I koden nedenfor gir &type adressen til variabelen (dobbel x). Den økes med 1 som gir adressen hvor du kan lagre neste variabel av type x.
Hvis du skriver x inn i char* og tar forskjellen, kan du vite totalt antall variabler av typen char som er lagret i minnet. Vi har brukt getchar() for å lese tegn.
#include<stdio.h> #define my_sizeof(type) (char *)(&type+1)-(char*)(&type) int main() { double x; printf("%ld", my_sizeof(x)); getchar(); return 0; }
produksjon:
8
Syntaks 2)
sizeof(variabelnavn): Variable-name= navnet på variabelen du vil bestemme størrelsen på.
I C-programmet nedenfor skriver vi ut størrelsen char datatype. Printf-setningen inneholder størrelsen på funksjonen med argumentet char.
Eksempel på sizeof(variabelnavn):
#include<stdio.h> int main() { printf("sizeof(char) = %d\n\n", sizeof(char)); return 0; }
Utgang:
sizeof(char) = 1
Syntaks 3)
sizeof(uttrykk): Uttrykk= Uttrykk du må vurdere.
Eksempel på størrelse på (uttrykk):
I programmet nedenfor beregner og skriver vi først størrelsen på variabelen. Etter dette evaluerer vi uttrykk, lagrer det i variabel a og viser resultatet i printf-setningen.
#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; }
Utgang:
Size of variable p : 1 Size of an expression : 8 Size of explicitly converted expression : 4
Forskjellen mellom strlen() og sizeof()
Her er de viktige forskjellene mellom strlen() og sizeof():
Strlen() | Størrelse på() |
---|---|
Strlen() er en forhåndsdefinert funksjon, som er definert i en overskriftsfil kjent som string.h. | Sizeof() er en unær operator eller kompileringstidsuttrykk som beregner mengden av minnet som er okkupert av en variabel. |
Denne metoden brukes til å finne lengden på en rekke med streng eller tegn. | Denne metoden brukes til å finne den faktiske størrelsen på data (allokert) i byte. |
Den teller antall tegn i en streng og eliminerer nullverdier. | Den returnerer størrelsen på en operand, ikke strenglengden (inkludert nullverdier). |
Den tildeler minne ved kjøretid og ser etter nullverdien til variabelen. | Sizeof() bryr seg ikke om variabelverdien. |
Strlen()-funksjonen fungerer bare med tegnstrenger | Sizeof()-funksjonen returnerer mengden minne som er tildelt i byte. |
Returverdi i strlen() er long int. | Returverdi i sizeof() er usignert int. |
Det er bare én syntaks for strlen() som er int strlen(const char *str); | Det er tre syntakser for sizeof() 1) sizeof(type), 2) sizeof(variabelnavn) og 3) sizeof(uttrykk): |