Portál AbcLinuxu, 12. prosince 2025 07:14
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.