C Ohjelmointi

Merkkijonon pituus C-kielellä

Merkkijonon pituus C-kielellä
C-kielinen merkkijono on merkkijono, joka päättyy nollamerkkiin (\ 0). Merkkijonon pituus on merkkijono merkkijonossa. Merkkijonon pituudessa '\ 0' merkkiä ei lasketa.

Yllä olevassa esimerkissä merkkijonon pituus str on 6.

Tässä opetusohjelmassa näytämme ensin, miten a käyttäjän määrittämä toiminto laskeaksesi merkkijonon pituuden, näytämme sitten sisäänrakennetun kirjastofunktion strlen (). Näytämme sinulle myös koko operaattori merkkijono-literaaleille.

Merkkijonon pituus käyttäjän määrittämällä toiminnolla

Voit kirjoittaa käyttäjän määrittelemän funktion, joka palauttaa merkkijonon merkkijonon.

// Esimerkki 1.c
#sisältää
int stringLength (char * str)

int i = 0;
kun (str [i] != '\ 0') i ++;
paluu i;

int main ()

char str [30] = "STRING";
printf ("Merkkijonon pituus str = =% d \ n", stringLength (str));
paluu 0;

Täällä toistetaan while-silmukka i = 0 kunnes emme kohdata '\ 0' merkki. Arvo i kasvaa 1 kussakin while-silmukan iteraatiossa. Kun silmukka päättyy, arvo i on merkkijonon pituus.

Merkkijonon pituus sisäänrakennetun kirjastotoiminnon avulla

Sisäänrakennettu kirjastotoiminto strlen () voidaan käyttää myös merkkijonon pituuden määrittämiseen.

strlen () -funktio:

Otsikkotiedosto:

merkkijono.h

Syntaksi:

size_t strlen (const char * str)

Perustelu: Tämä funktio vie tyypin osoittimen argumentin char: ksi.

Palautusarvo: Tämä funktio palauttaa merkkijonon pituuden str. Ota huomioon, että koko_t on vain allekirjoittamattoman kokonaisluvun alias.

// Esimerkki 2.c
#sisältää
#sisältää
int main ()

char str1 [30] = "JOUSIKUVA";
char * str2;
char * str3;
str2 = str1;
str3 = "JOUSIPISTE";
printf ("Merkkijonon str1 pituus on =>% ld \ n", strlen (str1));
printf ("Merkkijonon str2 pituus on =>% ld \ n", strlen (str2));
printf ("Merkkijonon str3 pituus on =>% ld \ n", strlen (str3));
printf ("Merkkijonon" STRING LITERALS "pituus on =>% ld \ n", strlen ("STRING LITERALS"));
paluu 0;

Tässä välitämme merkkijonotaulukon, merkkijonon osoittimen ja merkkijonon literaalin strlen-funktiolle, ja funktio palauttaa merkkijonon pituuden.

Merkkijonon pituus operaattorin koon avulla

Voimme myös käyttää koko merkkijonon pituusoperaattori (vain merkkijonon kirjaimelle). Mutta meidän on vähennettävä 1 tämän operaattorin palauttamasta arvosta, koska se laskee myös merkin '\ 0'. Matriisille ja osoittimelle operaattorin size palauttaa matriisin ja osoittimen varatun koon.

// Esimerkki 3.c
#sisältää
int main ()

char str1 [30] = "STRING";
char * str2 = str1;
printf ("STRING: n pituus on =>% d \ n", (sizeof ("STRING") - 1));
printf ("str1-taulukon kohdennettu koko on =>% d \ n", sizeof (str1));
printf ("str2-osoittimen koko on =>% d \ n", sizeof (str2));
paluu 0;

Tässä rivillä nro 9 välitämme merkkijonon "STRING" ja saat koon, mukaan lukien merkki \ 0. Joten vähennämme 1 ja saamme merkkijonon todellisen koon.

Kun välitämme matriisin operaattorin sizeofille, se palauttaa matriisin allokoidun koon, joka on 30, ja ohitettaessa merkkiosoittimen palauttaa osoittimen koon.

Johtopäätös

Joten tässä opetusohjelmassa olemme osoittaneet, kuinka merkkijonon pituus voidaan laskea eri tavoin. Voit käyttää koodissasi kumpi menetelmä sopii sinulle parhaiten.

Parhaat Linux-peliohjaimen kartoitussovellukset
Jos haluat pelata pelejä Linuxissa peliohjaimella tyypillisen näppäimistön ja hiiren syöttöjärjestelmän sijaan, on sinulle hyödyllisiä sovelluksia. Mo...
Hyödyllisiä työkaluja Linux-pelaajille
Jos haluat pelata pelejä Linuxissa, on todennäköistä, että olet käyttänyt sovelluksia ja apuohjelmia, kuten Wine, Lutris ja OBS Studio, pelikokemuksen...
HD Remastered Games for Linux that Never had a Linux Release Earlier
Many game developers and publishers are coming up with HD remaster of old games to extend the life of franchise, please fans requesting compatibility ...