Az alábbi kódban mi a hiba? C++
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:)!










1.: Szóval SPACE-ekkel elválasztva írják be az "elemeket"???
2.: A "substr" paraméterezése:
(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);
Ú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!





#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';
}
}
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:)!!)
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!