Kezdőoldal » Számítástechnika » Programozás » Az alábbi kódban mi a hiba? C++

Az alábbi kódban mi a hiba? C++

Figyelt kérdés

Szeretnék egy kis segítséget kérni.

Leírás: Suliba az lenne a feladat, hogy egy adott sor elemeit (lehet szöveg vagy szám), ki kéne íratni külön-külön sorba, majd ezeket tárolni kell, azt megoldanám ha soronként változóba tudnám tenni, de nem jól teszi őket a változóba.. Én az alábbival próbálkoztam, miért nem jó? Van egyszerűbb megoldás is?

Probléma: Nem jó a kimenete, vagy a szóközt is belerakja, vagy a kövi karaktert is.

Kód:

string szoveg,resz;

char space=' ';

int index=0;

getline(cin,szoveg);

szoveg+=space;

for(int i=1; i<=szoveg.length(); ++i){

if(szoveg[i]==space){

resz=szoveg.substr(index,i);

index=i+1;

cout<<resz<<endl;

}

}


Előre is köszönöm a segítséget:)!


2016. okt. 24. 15:19
 1/6 anonim ***** válasza:
A substr második paramétere az, hogy HÁNY karaktert adjon vissza, nem az, hogy melyik pozícióig.
2016. okt. 24. 15:35
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:

1.: Szóval SPACE-ekkel elválasztva írják be az "elemeket"???


2.: A "substr" paraméterezése:

[link]

(1: index, 2: darabszám)


3.: Az "i"-ciklusváltozó ezalapján mindig egyre nagyobb és nagyobb lesz...


esetleg...

resz=szoveg.substr(index, i-1-index);

2016. okt. 24. 15:36
Hasznos számodra ez a válasz?
 3/6 A kérdező kommentje:

Úristen, tényleg, már vagy másfél napja vacakolok ezen. Hát még a megoldásra nem jöttem rá, de a problémát már legalább tudom. Nincs olyan függvény, ami darabtól-darabig vág ki esetleg?


Igen ez lenne a feladat, (példa):


Gábor Pál Dénes Sándor Géza


és mondjuk egy 5 elemű tömbbe tárolni, ezeket a string részeket.

A "resz=szoveg.substr(index, i-1-index);" nem működik, de ha helyette ezt írom:

"resz=szoveg.substr(index, i+1-index);" már kezd alakulni, köszönöm mennek a zöldek:D!

2016. okt. 24. 15:52
 4/6 anonim ***** válasza:

#include <iostream>

#include <sstream>

#include <string>


using namespace std;


int main()

{

string szoveg;

getline(cin, szoveg);


istringstream is(szoveg);

for(string s; getline(is, s, ' ');) {

cout << s << '\n';

}

}

2016. okt. 26. 00:40
Hasznos számodra ez a válasz?
 5/6 A kérdező kommentje:

Nagyon szépek köszönöm neked is! Az lenne a kérdésem hogy ez több szóköz esetén is működik?pl:

2 3 4 5 Géza Gábor András Petis ...stb

Ez a megoldás csak az első whitespace-ig szedi ki a karaktereket nem?

(ui: Megy a zöld:)!!)

2016. okt. 26. 10:44
 6/6 A kérdező kommentje:
jajj meg se szólaltam hisz ciklusban van. Tökéletes nagyon szépen köszönöm neked!!!!!!
2016. okt. 26. 10:46

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!