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