Stringi pikkus C keeles

String Length C Language



C -keele string on märkide massiiv, mis lõpetatakse nullmärgiga ( 0). Stringi pikkus on stringi märkide arv. Stringi pikkuses ' 0' tähemärki ei arvestata.







Ülaltoodud näites on stringi pikkus lk on 6.



Selles õpetuses näitame kõigepealt, kuidas kasutada kasutaja määratud funktsioon stringi pikkuse arvutamiseks ja siis näitame teile sisseehitatud raamatukogu funktsiooni strlen () . Samuti näitame teile selle kasutamist suurus stringide literaalide operaator.



Stringi pikkus kasutaja määratud funktsiooni abil

Saate kirjutada kasutaja määratud funktsiooni, mis tagastab stringi märkide arvu.





//Näide1.c
#kaasake

intstringPikkus(süsi *lk)
{
inti=0;

samas(lk[i] ! = ' 0')i++;

tagasii;
}

intpeamine()
{
süsilk[30]= „STRING”;

printf ('Stringi str pikkus on => %d n',stringPikkus(lk));

tagasi 0;
}

Siin kordame samal ajal tsüklit i = 0 kuni me ei kohta ' 0' iseloom. Väärtus i võrra suurendatakse 1 while -tsükli igas iteratsioonis. Kui tsükkel lõpeb, väärtus i on nööri pikkus.



Stringi pikkus sisseehitatud raamatukogu funktsiooni abil

Sisseehitatud raamatukogu funktsioon strlen () saab kasutada ka stringi pikkuse määramiseks.

funktsioon strlen ():

Päisefail:

string.h

Süntaks:

suurus_t strlen (const süsi *lk)

Argument: See funktsioon võtab tüübi kursori argumendi märkimiseks.

Tagastusväärtus: See funktsioon tagastab stringi pikkuse lk . Pange tähele, et suurus_t on lihtsalt allkirjastamata täisarv.

//Näide2.c
#kaasake
#kaasake

intpeamine()
{
süsistr1[30]='STRING ARRAY';
süsi *str2;
süsi *str3;

str2=str1;
str3= „STRING POINTER”;

printf ('Stringi str1 pikkus on => %ld n', strlen (str1));
printf ('Stringi str2 pikkus on => %ld n', strlen (str2));
printf ('Stringi str3 pikkus on => %ld n', strlen (str3));
printf ('Stringi pikkus'STRING KIRJANDUS'on => %ld n', strlen („STRING LITERALS”));

tagasi 0;
}

Siin edastame strleni massiivi, stringi osuti ja stringi literaali funktsioonile strlen ning funktsioon tagastab stringi pikkuse.

Stringi pikkus operaatori suuruse abil

Samuti saame kasutada suurus stringi pikkuse operaator (ainult string literal). Kuid selle operaatori tagastatud väärtusest peame lahutama 1, sest see loeb ka tähe „ 0”. Massiivi ja osuti korral tagastab operaator sizeof vastavalt massiivi ja kursori eraldatud suuruse.

//Näide3.c
#kaasake

intpeamine()
{
süsistr1[30] = „STRING”;
süsi *str2=str1;

printf ('Pikkus'STRING'on => %d n',(suurus(„STRING”) - 1));
printf ('Massiivi str1 eraldatud suurus on => %d n',suurus(str1));
printf ('Kursori str2 suurus on => %d n',suurus(str2));

tagasi 0;
}

Siin, real nr 9, edastame stringi literaali STRING ja saame suuruse, sealhulgas märgi „ 0”. Niisiis, lahutame 1 ja saame rea tegeliku suuruse.

Kui edastame massiivi operaatorile sizeof, tagastab see massiivi eraldatud suuruse, mis on 30, ja tähemärgi kursori edastamisel tagastab kursori suuruse.

Järeldus

Niisiis, selles õpetuses oleme näidanud teile, kuidas stringi pikkust saab arvutada mitmel viisil. Saate oma koodis kasutada mis tahes meetodit, mis teile kõige paremini sobib.