Érték átmásolása az egyik charból egy másikba? [C programozási nyelv]
Sziasztok, most ismerkedek a C-vel. Eddig C#-ban programoztam.
Ugyebár a C#-ban volt string és az értékét simán átlehetett adni például az alábbi módon:
legnagyobbNev = masodikNev;
Ilyenkor a legnagyobbNev változóba belehelyezte a masodikNev változó értékét.
C-ben tudtommal nincs string, viszont felvettem a neveket, értékeket char-ban. Hogyan tudnám megoldani, hogy különböző logikai összehasonlítások után a megfelelő értéket, nevet tegyem bele a másik char-ba?
C-ben is ugyanúgy próbáltam, mint C#-ban, viszont nem akar működni.
legnagyobbNev=masodikNev;
Tudnátok segíteni?
A klasszikus c-ben karakterenként másolod(itt /0-val lezárt karaktertömb a string), vagy használod a strcpy függvényt.
Példa:
C-ben a string valójában egy karaktertömb, és a tömbökre az első elemére mutató pointerrel hivatkozunk. Tehát itt:
legnagyobbNev=masodikNev;
valójában egy memóriacímet másolsz egy pointerbe, tehát most mindkét pointered ugyanannak a tömbnek az első elemére fog mutatni, de a tömb elemei nem változnak, sőt új tömb sem jön létre.
(ld: #1) Másolásnál vigyázz, hogy ahova másolod, az egy már létező memóriaterület legyen, ne csak egy tömb-pointer.
"Én úgy csinálnám hogy lemérném a karaktertömb hosszát. Majd létrehoznék egy másik ugyan akkora karaktertömböt. Végül már csak egy for ciklussal át kell másolni a karaktereket."
strdup()
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!