Kezdőoldal » Számítástechnika » Programozás » Érték átmásolása az egyik...

Érték átmásolása az egyik charból egy másikba? [C programozási nyelv]

Figyelt kérdés

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?



2019. okt. 15. 13:17
 1/9 anonim ***** válasza:
72%

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:

[link]

2019. okt. 15. 13:24
Hasznos számodra ez a válasz?
 2/9 anonim ***** válasza:
100%

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.

2019. okt. 15. 15:55
Hasznos számodra ez a válasz?
 3/9 anonim ***** válasza:
100%
Elso, strcpy() mar tiz evvel ezelott is gaznak szamitott a puffer puffer tulcsordulas-potencial miatt, helyette strncpy() vagy tarsai hasznalatosak.
2019. okt. 15. 19:03
Hasznos számodra ez a válasz?
 4/9 anonim ***** válasza:
100%

Olvasnivaló:

"Pointerek, sztringek" (A C nyelv egyik fontos témaköre.)

[link]

2019. okt. 16. 10:48
Hasznos számodra ez a válasz?
 5/9 A kérdező kommentje:
Köszönöm szépen a választ mindenkinek!
2019. okt. 16. 13:11
 6/9 anonim ***** válasza:
72%
É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.
2019. okt. 16. 21:51
Hasznos számodra ez a válasz?
 7/9 A kérdező kommentje:
Ezzel az a probléma, hogy a feladat szerint el kell dönteni, hogy ki nyeri a versenyt, és én szépen haladok végig a versenyzőkön és mindig csak a legjobbról tárolom el az elért eredményét és a nevét. És ugyebár különböző hosszúságú nevek vannak, így az elején meg nem tudom lemérni a hosszát.
2019. okt. 17. 10:57
 8/9 anonim ***** válasza:
100%

"É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()

2019. okt. 17. 12:08
Hasznos számodra ez a válasz?
 9/9 anonim ***** válasza:
100%
Kerdezo, neked nem is lenne muszaj atmasolnod a teljes stringet, csak eltarolni egy pointert a legjobb nevehez.
2019. okt. 17. 12:09
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!