Kezdőoldal » Számítástechnika » Programozás » C++, mi lehet a hiba?

C++, mi lehet a hiba?

Figyelt kérdés

Sziasztok!


Függvényt kell írnom, amely egy sztringhez hozzáfűz egyetlen karaktert.

A visszatérési értékem egy pointer, a memóriafoglalást/felszabadítást és kiíratást pedig a mainben végzem.


A problémám, hogy a kiíratásnál kiírja a helyes karaktersorozatot viszont utána pár karakternyi szemetet is, DE..

Ha eggyel nagyobb helyet foglalok és így lezáró nullát használok a függvényemben, akkor kiíratásnál semmi gond.


Miért nem működik normálisan a kiíratás lezáró nulla nélkül? Meg tudom ezt oldani enélkül, vagy mindenképpen kell a lezárás?


Köszi.


2013. márc. 31. 23:07
 1/5 anonim ***** válasza:

A stringnek az az ismérve, hogy \0 van a végén.

Ha nem akarsz lezáró \0-át, akkor használ karakter tömböt és egy plusz változót, ami a hosszát tárolja, azaz térj "vissza" a C-hez!

2013. márc. 31. 23:11
Hasznos számodra ez a válasz?
 2/5 anonim ***** válasza:
Izé... c-ben is volt string :D Mindegy, a lényeget érted :D
2013. márc. 31. 23:11
Hasznos számodra ez a válasz?
 3/5 A kérdező kommentje:
Értem. Hát akkor úgy próbálkozok. :) Köszi.
2013. márc. 31. 23:12
 4/5 iostream ***** válasza:

A C-s string tulajdonsága, hogy 0 karakter zárja le. De ez csak konvenció (meg minden stringmanipulátor így működik), nem kötelező. Ki lehet iratni stringet, és ki lehet iratni adott mennyiségű karaktert, az előbbi lezáró 0-ig megy, az utóbbi pontosan annyi karaktert ír ki, amennyit mondasz neki:


char myString[20] = "asdbsd\0";


std::cout << myString << '\n'; //prints "asdbsd\n"

std::cout.write(myString, 4); //prints "asdb"

2013. ápr. 1. 00:28
Hasznos számodra ez a válasz?
 5/5 iostream ***** válasza:
Jah és a félreértések elkerülése végett, ilyenkor használd a "karaktertömb" kifejezést. A stringet C++-ban inkább az std::stringre szoktuk használni.
2013. ápr. 1. 00:29
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, 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!