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

A string hossza - funkció strlen ()

Á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