Kezdőoldal » Számítástechnika » Programozás » Milyen operátorokkal tudok...

Milyen operátorokkal tudok tömböt készíteni a felhasználó által megadott adatokból C++-ban?

Figyelt kérdés

Az input 365 sorból áll. A lényeg az, hogy meg kell adni, hogy hány darab névnapja van X névnek illetve, hanyadik napon van.


Például ha a User inputja az, hogy "Szilveszter", akkor az output "1 365"


Az inputnak a másik része is manuális (mármint nem magában a kódban deklarált), hogy először megad egy integer értéket, hogy hány nap van és a neveket, hogy kinek mikor van a névnapja. Két nap sortöréssel van elválasztva, leszámítva az elsőt, mert ott: "365-szóköz-Anna".


Nem tudok minden adatra charként tekinteni, mert egy nap lehet több embernek is névnapja. Azok vesszővel vannak elválasztva.


Hogyan tudok tehát ezekből a karaktersorozatokból olyan karaktertömböt csinálni, hogy a kód a vesszőt felismerje és egy tömb (pl a 155. nap tömbjét) különböző tagjaiként válassza szét a neveket.


Jelenleg a kód ott tart, hogy nem jut el a beolvasásig sem. Egy név inputot tudok neki adni és a napok számát. Mutatom: [link]


Igen, tudom: Kezdő vagyok, hülye vagyok, kíméljetek meg az anyázástól. Kösz.



2021. okt. 11. 20:52
 1/4 A kérdező kommentje:

#include <iostream>


using namespace std;


int main()

{

int z;

char name[z];

char act_name;

int i;

int napokszama;

cerr << "Naptár" << endl;


cerr << "Hány nap lesz?"; cin>>napokszama;



for(int i=0; i<napokszama; ++i){

cerr<<i+1<<".nap:";

cin>>name[i];


}

cerr<< "Melyiket keressük?" << endl;

cin>>act_name;


cout<<act_name<<endl;

return 0;

}

2021. okt. 11. 20:52
 2/4 anonim ***** válasza:

a char name[z] az egy z elemű karaktertömb. Egyetlen sztring tárolására képes.

Használj inkább string tömböt

2021. okt. 11. 21:22
Hasznos számodra ez a válasz?
 3/4 anonim ***** válasza:

szóval akkor hogy jól értsem


az input 1 az 1től 365ig egyesével az év napjai, és utána 1 vagy több (0 vagy több?) név, szóközökkel elválasztva, hogy ki(k)nek van azon a napon névnapja.


és a második fele hogy lekérdezel egy adott nevet, és kiírja, hogy mikor van a névnapja(i)


lehetne sokkal szebben is, de most a kezdőségedre figyelemmel leírom a legegyszerűbb módját ahogy én csinálnám


felvennék egy structot, ami egy adott embert reprezentál. ennek két adattagja lesz, egy char tömb mondjuk egy 1024es mérettel, hogy a név biztos beleférjen (SOKKAL egyszerűbb lenne std::stringet használnod), egy integer tömb aminek 365 helyet foglalok, és egy countert, hogy hány elemét használom fel (mégegy megjegyzés, sokkal egyszerűbb és átláthatóbb std::vecorral megoldani ezt)


felvennék ebből a structból megint csak egy tömböt, jó nagy mérettel (általában az ilyeneket meg szokta adni a feladat, hogy mennyi a max különböző név) és ide is egy countert (visszautalnék a vectoros megjegyzésemre) és abba beolvasásnál elkezdem belepakolni az adatokat. megnézem hogy az adott név benne van e a tömbömbe. ha igen, akkor az adott névhez rendelt integer tömbbe beleírom ezt a napszámot (és evidens, hogy a counterét is növelem), ha nem, akkor a tömb végére írom bele a nevet az adott napszámmal.


és amikor a user input második részénél lekérdezik a nevet, csak kiírom a tömb tartalmát (...counterig)


de tényleg nézz utána a std::stringnek és std::vectornak (akár még a setnek/mapnek is), sokat fognak segíteni a kód olvashatóságán.


és még egy pár észrevétel: a loopon kívül felesleges felvenni az i-t, azt csak újradeklarálod loopon belül. és cerr-el se írass így ki semmit, az kifejezetten az error üzenetekre van.


ha esetleg még így se menne akkor összedobom neked ha kell :)

2021. okt. 13. 12:55
Hasznos számodra ez a válasz?
 4/4 A kérdező kommentje:
3, Borzasztó rendes vagy, írtam neked privátot
2021. okt. 13. 14:28

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!