Új hozzászólás Aktív témák
-
Korcsii
őstag
válasz
Pcmagicnet
#2379
üzenetére
a \0 egy speciális karakter (NULL karakternek is hívják), szerepe, hogy jelezze a string végét (miért jó, azt csak akkor érted meg igazán, amikor nem engedik meg a string.h használatát
)szóval egy char tömbben (stringben) csak egyszer szerepelhet, bár tárolhatsz mögötte bármit, meg is jegyzi, de nem fogja kiírni, mert a kiírás is \0-ig történik...
strcat-tal lehet őket összefűzni, vagy ha egy mondatot akarsz egyben beleolvasni, akkor a szóközt is beleveszed, etc...
scanf("[^\n]",string);
pl én ezt szerettem anno, mindent beolvas addig, amíg sortörést nem talál... DE ez csak akkor alkalmazható, ha el is fér a string tömbben, azaz ha a feladat leírja, hogy márpedig csak ekkora meg ekkora lehet...a másik változatot:
int i = 0;
while((c = getchar()) != '\n') string[i++] = c;
string[i] = '\0';a probléma ugyanaz, ha nem fér el a megadott helyen (regényt adsz neki), akkor elszáll a program, de ha meg van adva a méret, használható...
ez utóbbiból azonban ki lehet indulni, ha dinamikusan akarjuk a memóriát lefoglalni: legjobb megoldás talán az, hogy foglalunk x méretűt, ha elérjük az x-et, foglalunk még egyszer akkorát, aztán a legvégén, amikor már az egész string megvan, megnézzük a méretét (vagy vesszük az i értékét), foglalunk egy akkorát, és belemásoljuk - így pont akkora helyet foglalunk neki, amekkora...
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Dell Optiplex 3050 SFF / I5-7500 / 8GB RAM / 128GB NVMe SSD!
- ROG Zephyrus G14 GA403UI 14" 3K OLED Ryzen 9 8945HS RTX 4070 32GB 512GB NVMe IR kam gar
- ASUS Vivobook16X Multimédiás laptop 16" -30% AMD Ryzen 5 5600H 6Mag 16/1TB Radeon 780M FHD+
- SAMSUNG FRAME SHERIF (QE65LS01DAUXXN) 165CM 4K Q-LED PRÉMIUM SMART ! AKCIÓ
- HP EliteBook 840 G7 14" i5 10210u, 16GB RAM, SSD, jó akku, számla, 6 hó gar
- Bomba ár! Lenovo ThinkPad T495 - R5P 3500U I 16GB I 512SSD I 14" FHD I Cam I W11 I Gari!
- Dell P2419H / P2719H Full HD LED IPS 24"-27" LCD monitorok
- BESZÁMÍTÁS! Gigabyte B660M i9 13900KF 64GB DDR4 1TB SSD RTX 3080Ti 12GB Zalman Z10 Plus Seasonic750W
- 197 - Lenovo Legion Pro 5 (16IAX10) - Intel Core U7 255HX, RTX 5070 (ELKELT)
- Apple iPhone 13 /128GB / Kártyafüggetlen / 12Hó Garancia / Akku: 100% Után gyártott Kijelző
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
)