Merkkijonon pituus C -kielellä

String Length C Language



Merkkijono C -kielellä on merkkijono, joka päättyy nollamerkkiin ( 0). Merkkijonon pituus on merkkijonon merkkien määrä. Merkkijonon pituudessa 0 merkkiä ei lasketa.







Yllä olevassa esimerkissä merkkijonon pituus s on 6.



Tässä opetusohjelmassa näytämme ensin, kuinka a käyttäjän määrittämä toiminto merkkijonon pituuden laskemiseksi, ja sitten näytämme sinulle sisäänrakennetun kirjastotoiminnon strlen () . Näytämme myös koko merkkijono -kirjainten operaattori.



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

Voit kirjoittaa käyttäjän määrittämän funktion, joka palauttaa merkkijonon merkkien määrän.





//Esimerkki1.c
#sisältää

intstringLength(hiiltyä *s)
{
inti=0;

sillä aikaa(s[i] ! = '' 0'')i++;

palatai;
}

inttärkein()
{
hiiltyäs[30]= 'STRING';

printf ('Merkkijonon merkkijonon pituus on => %d n'',stringLength(s));

palata 0;
}

Täällä toistamme samalla silmukan i = 0 kunnes emme tapaa ' 0' merkki. Arvo i kasvaa 1 while -silmukan jokaisessa iteraatiossa. Kun silmukka päättyy, arvo i on merkkijonon pituus.



Merkkijonon pituus sisäänrakennetun kirjastotoiminnon avulla

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

strlen () -funktio:

Otsikkotiedosto:

merkkijono.h

Syntaksi:

koko_t strlen (const hiiltyä *s)

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

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

//Esimerkki2.c
#sisältää
#sisältää

inttärkein()
{
hiiltyästr1[30]='JOUSISARJA';
hiiltyä *str2;
hiiltyä *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 pituus'JOUSTAVIA KIRJOITUKSIA'on => %ld n'', strlen ('JOUSTAVIA KIRJOITUKSIA'));

palata 0;
}

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

Merkkijonon pituus käyttämällä operaattorin kokoa

Voimme myös käyttää koko merkkijonon operaattori (vain merkkijonolle). Meidän on kuitenkin vähennettävä 1 tämän operaattorin palauttamasta arvosta, koska se laskee myös merkin ' 0'. Taulukolle ja osoittimelle sizeof -operaattori palauttaa taulukon ja osoittimen varatun koon.

//Esimerkki3.c
#sisältää

inttärkein()
{
hiiltyästr1[30] = 'STRING';
hiiltyä *str2=str1;

printf ('Pituus 'STRING'on => %d n'',(koko('STRING') - 1));
printf ('Str1 -taulukon varattu koko on => %d n'',koko(str1));
printf ('Str2 -osoittimen koko on => %d n'',koko(str2));

palata 0;
}

Tässä rivillä 9 ohitamme merkkijonon kirjaimen STRING ja saamme koon, mukaan lukien ' 0' -merkin. Joten vähennämme 1 ja saamme merkkijonon todellisen koon.

Kun välitämme taulukon operaattorille sizeof, se palauttaa taulukon varatun koon, joka on 30, ja kun ohitamme merkkikohdistimen, se palauttaa osoittimen koon.

Johtopäätös

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