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

