Dĺžka reťazca v jazyku C.

String Length C Language



Reťazec v jazyku C je pole znakov, ktoré je ukončené nulovým znakom ( 0). Dĺžka reťazca je počet znakov v reťazci. V dĺžke reťazca „ 0“ sa nezapočítava znak.







V príklade uvedenom vyššie je dĺžka reťazca p je 6.



V tomto návode si najskôr ukážeme, ako používať a užívateľom definovaná funkcia na výpočet dĺžky reťazca, a potom vám ukážeme vstavanú funkciu knižnice strlen () . Ukážeme vám tiež použitie veľkosť operátor pre reťazcové literály.



Dĺžka reťazca pomocou funkcie definovanej používateľom

Môžete napísať funkciu definovanú používateľom, ktorá vráti počet znakov v reťazci.





//Priklad1.c
#zahrnúť

intstringLength(char *p)
{
inti=0;

kým(p[i] ! = ' 0')i++;

vrátiť sai;
}

intHlavná()
{
charp[30]= „STRING“;

printf („Dĺžka reťazca str je => %d n',stringLength(p));

vrátiť sa 0;
}

Tu iterujeme cyklus while z i = 0 kým sa nestretneme s ' 0' charakter. Hodnota i sa zvyšuje o 1 v každej iterácii cyklu while. Keď sa slučka skončí, hodnota i je dĺžka reťazca.



Dĺžka reťazca pomocou vstavanej funkcie knižnice

Vstavaná funkcia knižnice strlen () môže byť tiež použitý na určenie dĺžky reťazca.

funkcia strlen ():

Hlavičkový súbor:

reťazec.h

Syntax:

veľkosť_t strlen (konšt char *p)

Argument: Táto funkcia preberá argument ukazovateľa typu na char.

Návratová hodnota: Táto funkcia vráti dĺžku reťazca p . Poznač si to veľkosť_t je len alias celé číslo bez znamienka.

//Priklad2.c
#zahrnúť
#zahrnúť

intHlavná()
{
charstr1[30]=„STRING ARRAY“;
char *str2;
char *str3;

str2=str1;
str3= „STRING POINTER“;

printf („Dĺžka reťazca str1 je => %ld n', strlen (str1));
printf („Dĺžka reťazca str2 je => %ld n', strlen (str2));
printf („Dĺžka reťazca str3 je => %ld n', strlen (str3));
printf („Dĺžka reťazca“STRINGOVÉ LITERÁLY'is => %ld n', strlen („STRING LITERALS“));

vrátiť sa 0;
}

Tu prejdeme do funkcie strlen pole reťazcov, ukazovateľ reťazca a doslovný reťazec a funkcia vráti dĺžku reťazca.

Dĺžka reťazca pomocou operátora sizeof

Môžeme tiež použiť veľkosť operátor pre dĺžku reťazca (iba pre doslovný reťazec). Musíme však odpočítať 1 od hodnoty vrátenej týmto operátorom, pretože počíta aj znak „ 0“. V prípade poľa a ukazovateľa operátor sizeof vráti pridelenú veľkosť poľa a ukazovateľa.

//Priklad3.c
#zahrnúť

intHlavná()
{
charstr1[30] = „STRING“;
char *str2=str1;

printf ('Dĺžka 'STRING'is => %d n',(veľkosť(„STRING“) - 1));
printf ('Pridelená veľkosť poľa str1 je => %d n',veľkosť(str1));
printf („Veľkosť ukazovateľa str2 je => %d n',veľkosť(str2));

vrátiť sa 0;
}

Tu v riadku č. 9 odovzdáme doslovný reťazec STRING a získame veľkosť vrátane znaku „ 0“. Odčítame teda 1 a dostaneme skutočnú veľkosť reťazca.

Keď odovzdáme pole operátorovi sizeof, vráti pridelenú veľkosť poľa, ktorá je 30, a pri prechode ukazovateľa znaku vráti veľkosť ukazovateľa.

Záver

V tomto návode sme vám teda ukázali, ako sa dá dĺžka reťazca vypočítať rôznymi spôsobmi. V kóde môžete použiť ľubovoľnú metódu, ktorá je pre vás najvhodnejšia.