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.hSyntax:
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.