Kezdőoldal » Számítástechnika » Programozás » Újabb kérdés, C programozás....

Hengerelőhereverem kérdése:

Újabb kérdés, C programozás. Sztringként kezelni egy tömb feltöltött elemeit?

Figyelt kérdés

Feltöltök egy tömböt saját fv-el ami aztán karakterenként adja vissza az értéket úgy, hogy sztringként tudja használni. Nem igazán mit kéne csinálnom, mert tömbökbe nem tudok ugye betűt bevinni csak így: t[1]='A';

Ha valaki érti pontosan mit kéne csinálnom egy ksi segítséget adna? Köszönöm előre is.



2014. máj. 25. 14:27
 1/10 anonim ***** válasza:
C-ben nincs string. A kérdés többi része meg nem világos.
2014. máj. 25. 15:07
Hasznos számodra ez a válasz?
 2/10 anonim ***** válasza:
100%

"Feltöltök egy tömböt saját fv-el ami aztán karakterenként adja vissza az értéket úgy, hogy sztringként tudja használni."

Ennek se füle se farka.


"Nem igazán mit kéne csinálnom, mert tömbökbe nem tudok ugye betűt bevinni csak így: t[1]='A';"

Miért ne tudnál? Pontosan igy lehet tömbnek értéket adni.


"Ha valaki érti pontosan mit kéne csinálnom egy ksi segítséget adna? Köszönöm előre is."

Nem nagyon, de szerintem te sem.

2014. máj. 25. 16:39
Hasznos számodra ez a válasz?
 3/10 anonim ***** válasza:

Elmondom a megoldás menetét:

-jól leírod ide, hogy mit szeretnél megvalósítani

-jól elküldenek melegebb éghajlatra vagy 10-en, aztán elmondják, hogy töröld ki az egész izét a fenébe, amit csináltál, mert nem jó, és totál nem így kell

-aztán még szenvedsz egy kicsit osz' jó lesz (vagy nem)

2014. máj. 25. 17:13
Hasznos számodra ez a válasz?
 4/10 A kérdező kommentje:

Ne haragudjatok, de nekem is abból kell kihámoznom amennyit a tanárom mondott, konkréten a példát írtam le nektek amit ő VETÍTETT ki a táblára.


Tehát ha jól értem akkor a C-ben a "string" igazából egy tömb aminek az elemeit így tölti fel?

t[0]='A';

t[1]='L';

t[2]='M';

t[3]='A';


és így van elraktározva benne a szöveg?


Köszönöm az eddigi segítséget is, lehet, hogy úgy tűnik, hogy nem értem, de azért sokat haladtam már előre :D

2014. máj. 25. 17:17
 5/10 anonim ***** válasza:

Azért van ennél egyszerűbb is:

char szoveg[] = "alma"; // az alma lesz a szoveg tömb tartalma

2014. máj. 25. 17:29
Hasznos számodra ez a válasz?
 6/10 anonim ***** válasza:

Kb jól érted. Annyi fontos még, hogy a char tömb (c-style string) végén mindig lezáró '\0' (vagy 0) jel van.


char szoveg[5] = "alma";

char szoveg[] = "alma"; <-ez is 5 hosszú helyet foglal

A hosszát később nem változtathatod, ezért ha változtatni kell akkor elég nagyot kell az elején létrehozni.

char szoveg[20] = "alma";


A stringkezelő függvények a hosszát nem ismerik, a lezáró '\0' végjelig mennek - ha ezt lehagyod, felülírod, akkor gyönyörű jelenségeket hozhatsz létre.

2014. máj. 25. 17:38
Hasznos számodra ez a válasz?
 7/10 anonim ***** válasza:
Azért az "alma\0" ott fog maradni a statikus memóriaterületen, de kb tényleg ugyanaz:D
2014. máj. 25. 17:43
Hasznos számodra ez a válasz?
 8/10 iostream ***** válasza:

"Azért az "alma\0" ott fog maradni a statikus memóriaterületen, de kb tényleg ugyanaz:D"


Ez nem igaz. Ha azt írod:

char* pStr = "alma";

akkor igen, lesz egy "alma" szöveged a statikus tárban, amire mutat egy pointer. De ha

char str[] = "alma";

akkor nem, nem lesz "alma" a statikus tárban, ez pont egyenértékű lesz azzal, hogy

char str[] = {'a', 'l', 'm', 'a', 0};


Inicializáló listák nem kerülnek a statikus tárba, miért is kerülnének.

2014. máj. 26. 01:02
Hasznos számodra ez a válasz?
 9/10 anonim ***** válasza:

@iostream


Hát.. valóban, mostmár nem voltam rest megnézni az assembly outputot, viszont én eddig úgy tudtam, hogy létrejön a statikus memóriaterületen, csak átmásolódik, ahogy ebben a kommentben is írja:

[link]


Ezek szerint ő is téved.

2014. máj. 26. 13:55
Hasznos számodra ez a válasz?
 10/10 iostream ***** válasza:
Bizony téved. Miért hozná létre a statikus tárban, amikor te a veremben kérted?
2014. máj. 26. 15:33
Hasznos számodra ez a válasz?

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

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!