Skirtumas tarp strlen () ir sizeof () eilutei C

Kas yra strlen ()

strlen () yra funkcija surasti eilutės ilgį. Skaičiuojami visi simboliai, pateikiami eilutėje, pašalinant nulinį simbolį. Bendras simbolių skaičius eilutėje apima abėcėles, specialiuosius simbolius ir skaičius su tuščiais tarpais.

Šiame skirtuke tarp strlen () ir sizeof () eilutei C pamokoje sužinosite:

  • Kas yra strlen ()
  • Kas yra dydis ()
  • Strlen () sintaksė
  • () Dydžio sintaksė
  • Skirtumas tarp strlen () ir sizeof ()

Kas yra dydis ()

Sizeof () yra funkcija, naudojama apskaičiuojant jos operando dydį. Tai grąžina konkretaus kintamojo dydį. Ši funkcija gali būti taikoma bet kokiam duomenų tipui, kuriame yra primityvių tipų, tokių kaip sveikųjų skaičių ir žymeklių tipai, slankiojo kablelio tipai, struktūra ar sąjunga. Programos, kurioje yra sizeof (), išvestis gali skirtis 32 bitų ir 64 bitų sistemose.

PAGRINDINIAI SKIRTUMAI:

  • Strleno metodas naudojamas masyvo ilgiui nustatyti, o metodas sizeof () - faktiniam duomenų dydžiui nustatyti.
  • Strlen () skaičiuoja simbolių skaičių eilutėje, o sizeof () grąžina operando dydį.
  • Strlenas () ieško kintamojo nulinės vertės, tačiau dydisof () nerūpi kintamojo reikšmė.
  • Grąžinimo vertė strlen () yra ilga int, kita vertus, grąžinimo vertė sizeof () yra nepasirašyta int.

Strlen () sintaksė

strcount = strlen(my_string);

Čia „my_string“ yra simbolių masyvo kintamasis.

Strlen () pavyzdys

Žemiau esančioje C programoje mes paskelbėme char tipo eilutės kintamąjį. Strng kintamasis yra perduotas kaip strlen () funkcijos argumentas, norint rasti eilutės ilgį.

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

Išvestis:

Length of given string is: 7

() Dydžio sintaksė

1 sintaksė)

sizeof (type): Tipas = nurodytas tipas

Sizeof (type) pavyzdys:

Žemiau esančiame kode & type pateikia kintamojo adresą (dvigubas x). Jis padidinamas 1, kuris nurodo adresą, kuriame galite išsaugoti kitą x tipo kintamąjį.

Įrašę x į char * ir paėmę skirtumą, galėsite sužinoti bendrą atmintyje saugomų char tipo kintamųjų skaičių. Perskaitydami simbolius, naudojome getchar ().

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

išvestis:

8

2 sintaksė)

sizeof (kintamasis vardas): Variable-name = kintamojo, kuriam norite nustatyti dydį, pavadinimas.

Žemiau esančioje C programoje spausdiname dydžio char duomenų tipą. „Printf“ sakinyje yra funkcijos sizeof su argumento simboliu.

„Sizeof“ (kintamo pavadinimo) pavyzdys:

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

Išvestis:

sizeof(char) = 1

3 sintaksė)

sizeof (išraiškos): Išraiška = Išraiška, kurią turite įvertinti.

(Išraiškos) dydžio pavyzdys:

Žemiau pateiktoje programoje pirmiausia apskaičiuojame ir spausdiname kintamojo dydį. Po to mes vertiname išraišką, saugome ją kintamajame a ir rodome rezultatą printf sakinyje.

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

Išvestis:

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

Skirtumas tarp strlen () ir sizeof ()

Čia yra svarbūs skirtumai tarp strlen () ir sizeof ():

Strlenas () Dydis()
„Strlen“ () yra iš anksto nustatyta funkcija, apibrėžta antraštės faile, vadinamame string.h. Sizeof () yra vienarūšis operatorius arba kompiliavimo laiko išraiška, apskaičiuojanti kintamojo užimamą atminties kiekį.
Šis metodas naudojamas ieškant eilutės ar simbolio masyvo ilgio. Šis metodas naudojamas norint rasti faktinį duomenų (paskirstytų) dydį baitais.
Jis skaičiuoja simbolių skaičių eilutėje, pašalindamas nulines reikšmes. Jis pateikia operando dydį, o ne eilutės ilgį (įskaitant nulines reikšmes).
Ji paskirsto atmintį vykdymo metu ir ieško nulinės kintamojo vertės. „Sizeof“ () nerūpi kintamoji reikšmė.
Strlen () funkcija veikia tik su simbolių eilutėmis Funkcija „Sizeof (“) grąžina baitais paskirstytą atminties kiekį.
Grąžinimo vertė strlen () yra ilga vid. Grąžinimo vertė sizeof () yra nepasirašyta vid.
Yra tik viena strlen () sintaksė, kuri yra int strlen (const char * str); Yra trys sintaksės sizeof () 1) sizeof (type), 2) sizeof (kintamasis vardas) ir 3) sizeof (išraiškos) sintaksės:

Įdomios straipsniai...