A sztring (karakterlánc, karakterfüzér) egyszerű objektumok (általában karakterek) sorozata.
A karaktertömb, meg egy tömb melyben karakterek vannak - ezzel is meg lehet valósítani a sztring tárolását (C-ben például egy sztringet tároló karaktertömb végén van egy \0 karakter).
Na de hogy legyen itt egy értelmes válasz is a sok off-topic hozzászólás mellett...
Akármilyen tömbről legyen is szó, az alapja ugyanaz mindegyiknek:
- homogén adatszerkezet: Ugye a tömbnek az volna a lényege, hogy több adatot egy egységként kezeljünk. Azért homogén a tömb, mert minden elem típusának meg kell egyeznie.
- statikus: Ez annyit tesz, hogy a tömb méretét nem változtathatod meg. Ha van egy 5 elemű tömböd, akkor abból nem csinálhatsz sem 4, sem 6 elemű tömböt.
- asszociatív: Ez annyit jelent, hogy egy adott számhoz egy adott értéket rendel hozzá. Ezt a számot, amihez az értéket rendeljük, indexnek nevezzük. Ez kulcsfontosságú lesz, ha el akarod érni a tömb valamely elemét. Egyes nyelvek azt vallják, hogy az első elem indexe 1 legyen, míg más nyelvek pedig 0-tól kezdik a számozást.
Innentől kezdve, ha karaktertömbről beszélünk, az nem más, mint egy olyan tömb, amelynek elemei karakter típusúak.
A string ezzel szemben egy olyan szekvenciális lista, amelynek az elemei karakterek. A különféle programozási nyelvek más-más módszert választhatnak a stringek tárolására:
- tárolhatják fix méretű területen: alma__, Sanyi_, terítő, egy___ (az aláhúzás a szabad helyeket jelenti)
- tárolhatjuk dinamikus méretű területen: 4alma, 5Sanyi, 3egy (a string előtti szám jelzi, hogy hány karakterből áll a string)
- valamint tárolhatjuk úgy is, hogy a végére valamilyen speciális jelet teszünk: alma\0, Sanyi\0, egy\0 (ez a \0 egy karaktert jelent, hiába két karakterrel írjuk le; ebben az esetben addig olvassuk a stringet, amíg ebbe a speciális végjelbe bele nem futunk).
És ezen túl a különféle programozási nyelvek választhatnak különféle eszközöket is a string-ek kezelésére:
- vannak nyelvek, akik egy egyszerű tömbbel oldják meg a string-ek kezelését (pl. a C nyelv)
- míg más nyelvek azt mondják, hogy egy saját, erre a célra kiképzett típust vezetnek be (mint pl. a C#, a C++, a Java stb.)
"A string ezzel szemben egy olyan szekvenciális lista, amelynek az elemei karakterek."
Vagy nem, mert ugye, létezik bináris string is.
De nem ez az egyetlen hiba az irományodban.
Ahogy látom, a #8-as válaszoló egész jól megadta a választ.
Leírom, én hogy tudom, aztán legfeljebb én is el leszek küldve a rákba. :))
A string egy karaktersorozat, valamilyen jeleket (betűk, számok, stb.) reprezentáló értékek sorozata. Ezt a sorozatot többféleképpen lehet tárolni, feldolgozni.
Meg lehet valósítani pl. karakterek tömbjeként, ami egy sima tömb. A tömb méretének (string hosszának) megadása nyelvtől, fordítótól, algoritmustól függően eltérő lehet, de a lényeg ugyanaz.
String lehet még objektum is, bár maga az objektum általában "csak" elfedi a mögöttes tárolási módot. Gyakran ugyancsak tömb van a háttérben.
Elvben lehet akár pl. dinamikus láncként is stringet tárolni, ami karakter-objektumok lánca lenne. Ez is string, de nincs sok köze a klasszikus tömbökhöz.
De lehet kombinálni is, tehát karakter objektumok tömbjét hozzuk létre. Ennek akkor lehet jelentősége, ha mondjuk "wide" karakterekkel vagy UTF-8 karakterekkel dolgozunk. (A gyakorlatban ez erősen feladatfüggő, gyakran nem is célszerű, csak az elv miatt írtam.) Ez is egyfajta string, és még tömb is, de nem karaktertömb.
:)
"a #8-as válaszoló egész jól megadta a választ"
Azóta kicsit meg lettünk tizedelve. :)
A 4-esre gondoltam, és most látom, az 5-ös is teljesen korrekt. Én kb. ugyanazt írtam, csak más megközelítésben.
:)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!