Kezdőoldal » Számítástechnika » Programozás » A karakterekből álló tömb az...

A karakterekből álló tömb az stringnek számít?

Figyelt kérdés

Ha van egy tömb, amiben csak karakterek vannak, akkor az string?


És akkor a string az tömbnek számít? Abból a szempontból az, hogy több karakter tárolására képes. De vajon van más különbség is? A változó, és a tömb között helyezkedik el van valahol?


2023. máj. 11. 12:30
 1/7 anonim ***** válasza:
91%
Programozási nyelv függő, szóval először ezt kéne tudni.
2023. máj. 11. 12:50
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:
26%
Tömb az nem lehet string, max string[], de lehet csak én nem találkoztam olyan nyelvvel ahol mégis.
2023. máj. 11. 12:58
Hasznos számodra ez a válasz?
 3/7 anonim ***** válasza:
90%
C-ben a tömb az csak egy szintaktikai könnyítés, mert egyébként sima mutató. Külön string pedig nincs, arra egy karakter tömböt használnak
2023. máj. 11. 13:03
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:
C/C++ igen.
2023. máj. 11. 13:12
Hasznos számodra ez a válasz?
 5/7 anonim ***** válasza:
26%

Az a karaktertömb számít stringnek, amiben a karakterek logikailag összefüggenek és egy egészet képeznek abban a környezetben, ahol alkalmazzák, feltéve, ha egyáltalán van string adattipus abban a környezetben.

Ha valaki létre akar hozni egy karakterkészletet, ami mondjuk az angol ABC subsetje, és ezért definiál egy char tömböt, amikben a subset van, akkor az is karakterek tömbje, de mégsem string.

2023. máj. 11. 13:57
Hasznos számodra ez a válasz?
 6/7 A kérdező kommentje:
C++-ban.
2023. máj. 11. 17:52
 7/7 anonim ***** válasza:

C-ben igen, stringnek számít egy karaktertömb. Meg is figyelheted, hogy C-ben nincs is string kulcsszó, csak char*, tehát char-ra mutató pointer. És ahogy korábban is írták, C-ben a tömb operátor csak szintaktikai segítség, ami valójában pointer aritmetikát és dereferenciát hajt végre, tehát ha pl van egy char* típusú c változód, akkor a c[3] jelentése *(c+3).


DE figyelned kell arra, hogy a C-beli stringet a '\0' karakterrel lezárd. Alapból ezt meg fogja neked csinálni magától, amikor létrehozol egy stringet, de ha teszem azt karakterenként rakosgatod össze, akkor ezt neked kell megcsinálni. Ez egy 0 értékű bájt, ami a string végét jelzi, ha ez nincs meg, addig fog olvasni amíg 0-t nem talál, ezáltal elérhetsz olyan memóriaterületet, amit nem kéne.


A kompatibilitás miatt C++-ban is elérhető ugyanez a fajta "nyers" C string, de ott tipikusan nem ezt használjuk, hanem a std::string típust, ami már egy objektum, nem csak egy sima pointer.

2023. máj. 15. 15:49
Hasznos számodra ez a válasz?

További 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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!