C Programmeerimine

Stringi pikkus C-keeles

Stringi pikkus C-keeles
C-keeles string on märkide massiiv, mis on lõpetatud nullmärgiga (\ 0). Stringi pikkus on stringi märkide arv. Stringi pikkuses '\ 0' ei loeta märki.

Ülaltoodud näites stringi pikkus str on 6.

Selles õpetuses näitame kõigepealt, kuidas a kasutaja määratud funktsioon stringi pikkuse arvutamiseks ja siis näitame teile sisseehitatud teegi funktsiooni strlen (). Näitame teile ka selle kasutamist suurus operaator stringi literaalidele.

Stringi pikkus kasutaja määratud funktsiooni abil

Võite kirjutada kasutaja määratud funktsiooni, mis tagastab stringi märkide arvu.

// Näide1.c
# kaasata
int stringLength (char * str)

int i = 0;
samas (str [i] != '\ 0') i ++;
tagasi i;

int main ()

char str [30] = "STRING";
printf ("Stringi str pikkus on =>% d \ n", stringLength (str));
tagastama 0;

Siin kordame silmust while i = 0 kuni me ei puutu kokku '\ 0' iseloomu. Väärtus i on suurendatud 1 igas loopi iteratsioonis. Kui silmus lõpeb, väärtus i on stringi pikkus.

Stringi pikkus sisseehitatud teegi 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 char * str)

Argument: See funktsioon viib tüübikursori argumendi char-ni.

Tagastusväärtus: See funktsioon tagastab stringi pikkuse str. Pange tähele, et suurus_t on lihtsalt kirjutamata täisarvunimi.

// Näide2.c
# kaasata
# kaasata
int main ()

char str1 [30] = "STRING ARRAY";
char * str2;
char * 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" STRING LITERALS "pikkus on =>% ld \ n", strlen ("STRING LITERALS"));
tagastama 0;

Siinkohal edastame stringi funktsioonile stringi massiivi, stringi kursori ja stringi literaali ning funktsioon tagastab stringi pikkuse.

Stringi pikkus Operaatori suuruse abil

Samuti saame kasutada suurus operaator stringi pikkuse jaoks (ainult stringi literaali jaoks). Kuid selle operaatori tagastatud väärtusest peame lahutama 1, sest see loeb ka märki '\ 0'. Massiivi ja osuti korral tagastab operaatori sizeof vastavalt massiivi ja osuti eraldatud suuruse.

Näide3.c
# kaasata
int main ()

char str1 [30] = "STRING";
char * str2 = str1;
printf ("Stringi" STRING "pikkus on =>% d \ n", (sizeof ("STRING") - 1));
printf ("str1 massiivi eraldatud suurus on =>% d \ n", sizeof (str1));
printf ("str2 osuti suurus on =>% d \ n", sizeof (str2));
tagastama 0;

Siin, real nr 9, edastame stringi litraali “STRING” ja saame suuruse, sealhulgas märgi '\ 0'. Niisiis, lahutame 1 ja saame stringi tegeliku suuruse.

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

Järeldus

Niisiis, selles õpetuses oleme teile näidanud, kuidas stringi pikkust saab arvutada mitmel viisil. Koodis saate kasutada seda meetodit, mis teile kõige paremini sobib.

Nende tasuta tööriistade abil lisage Windows 10-le hiire liigutused
Viimastel aastatel on arvutid ja operatsioonisüsteemid palju arenenud. Oli aeg, mil kasutajad pidid failihaldurites navigeerimiseks kasutama käske. Na...
Juhtige ja hallake hiire liikumist mitme kuvari vahel Windows 10-s
Dual Display Mouse Manager võimaldab teil kontrollida ja konfigureerida hiire liikumist mitme monitori vahel, aeglustades selle liikumist piiri läheda...
WinMouse võimaldab teil kohandada ja parandada hiirekursori liikumist Windowsi arvutis
Kui soovite oma hiirekursori vaikefunktsioone paremaks muuta, kasutage vabavara WinMouse. See lisab rohkem funktsioone, mis aitavad teil alandlikust h...