Portál AbcLinuxu, 12. května 2025 06:38
int vypis( const char * roky)
2012 2012 - 2014 // interval, tj 2012,2013,2014 "2012, 2014, 2016"jak prosim tyto parametry dostanu do promenne nebo spis do pole? Nebo jak to lze resit? Bile znaky vynechat. Dekuji
char hotovo[1000]; for (unsigned int i=0; i< strlen (roky); i++) { if(roky[i] == ' ') mezera++; else hotovo[i-mezera] = roky[i]; }
#!/usr/bin/env ruby vstupy = [ "2012", "2012 - 2014", "2012, 2014-2016, 2018" ] def vypis(vstup) vystup = [ ] prvky = vstup.split(',') prvky.each {|p| p = p.split('-') if p.length == 1 then vystup << p[0].to_i next elsif p.length == 2 then zacatek = p[0].to_i konec = p[1].to_i zacatek.upto(konec) {|y| vystup << y } else throw :parseError exit end } puts "Vstup #{vstup}:" vystup.each {|v| puts v } puts end vstupy.each {|i| vypis(i) } =========== Vstup 2012: 2012 Vstup 2012 - 2014: 2012 2013 2014 Vstup 2012, 2014-2016, 2018: 2012 2014 2015 2016 2018
istringstream ss;
ss.str(roky);
vector <unsigned int> roky_pole;
// nacitej jak z std::cin
// ss >> ... rovnou do pole nebo do pomocne promene a pak roky_pole.push_back()
+ samozrejme rozlisit ty ruzne vstupy, pomuzou treba metody peek(), std::skipws, testovani proudu (good(), eof(), ...) a podobne vecicky
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.