A string hossza - funkció strlen ()
A string hossza - funkció strlen ()
Az előző fejezetben használt szinte minden magyarázat nélkül művelet sizeof. ami számunkra az objektumok méretét byte-ban strlen () funkció lehetővé teszi, hogy meghatározza a string hossza karakterek száma. Ami a végeredmény egy karakter a memóriát egy bájt, azt várnánk, hogy ennek eredményeként sem a két művelet egy vonalra kerül elő ugyanazt az eredményt. Kiderült, hogy nem. Változtassuk meg a korábbi programok (adjunk hozzá néhány sornyi rá), és akkor meg fogja érteni, hogy mi az.
#define dicséret „Hú, milyen nagy név!”
printf ( "Mi a neved?");
printf ( "Hello,% s% s." nevet, dicséret.);
printf ( „Az Ön neve alkotja. betűk és burkolatokat. Memories”.
strlen (név), sizeof neve);
printf ( "Dicsérjétek az kifejezést betűkből áll.", strlen (PRAISE));
printf ( "és elfoglalja a memória sejtek ..", sizeof PRAISE);
Megjegyezzük, hogy a baleset szoktuk két módszer printf () kezelése hosszú szereplők. Az első esetben írunk a sajtó szereplő két programsort. Megcsináltuk, mert megengedett törni a húr közötti érvek, de nem a közepén a sor. Egy másik esetben, szoktuk két printf () utasítás nyomtatni egy sor; rámutattunk a karakter „új sor” (), csak a második közülük. Alábbiakban bemutatott munka eredménye ez a program segít megérteni ezt a helyzetet:
Szia, Perks. Hú, milyen nagy név!
Neved 5 betű és tart 50 memóriahelyek.
Dicsérő mondat áll, 35 betű, és úgy 36 memóriahelyek.
Lássuk, mi a baj. Array név egy 50 memória helyek, és ez által jelentett sizeof operátor. De ahhoz, hogy tartsa a név huncut szükséges csak az első öt slot, és csak erről tájékoztatjuk strlen () függvénnyel. A hatodik cella a tömb neve tartalmazza a null szimbólum, és a megjelenése a jel a funkció strlen () stop karakter számít
Ábra 4.4. Detection funkció strlen () newline
Az átmenet a feldolgozó állandó PRAISE találtuk, hogy strlen () függvény ismét ad nekünk a pontos számát karaktert (szóközökkel és központozás) egy sorban. Sizeof művelet eredményeként az egyik nagyobb, mert figyelembe vették, és a „láthatatlan” null szimbólum kerül a sor végére. Nem mondja a fordító, hogy mennyi memóriát meg kell venni, hogy befogadja a teljes kifejezést, ő számolja a karaktereket az idézőjelek között.
Egy másik megjegyzés az előző fejezetben a művelet sizeof merevítő használunk, és ebben - nélkülük. Ne nadrágtartó, használja az oldatot, vagy sem, attól függ, hogy mit szeretne tudni a lefoglalt memória mennyiségét az elemek egy bizonyos típusú, vagy a használt memória mennyiségét bizonyos tárgyakat az első esetben, akkor írj sizeof (char) vagy sizeof (float). és a második - sizeof nevét vagy sizeof 6.28.
Share az oldalon