Portál AbcLinuxu, 11. května 2025 01:15
Dobry den,
v premmenej string mam zadefinovanych viac slov a potreboval by som jednotlive slova v cykles pouzit ako premenne.
priklad: premenna="peter martin jano fero"
a program by postupne vypisal:
ahoj peter
ahoj jano a podobne
dakuje za radu
Řešení dotazu:
To Boost řešení by vypadalo takhle:
#include <boost/foreach.hpp> #include <boost/algorithm/string.hpp> #include <iostream> #include <vector> using namespace std; using namespace boost::algorithm; int main() { string premenna="peter martin jano fero"; vector<string> jmena; split(jmena, premenna, is_any_of(" "), token_compress_on); BOOST_FOREACH(const string &jmeno, jmena) { cout << "ahoj " << jmeno << "\n"; } return 0; }
#include <iostream> #include <string> #include <sstream> #include <algorithm> #include <iterator> #include <vector> void pis(std::string &str) { std::cout << "Vitaj z hub " << str << ", kde mas ceren?" << std::endl; } void vypisto(std::string &str) { std::istringstream iss(str); std::vector<std::string> slova; copy(std::istream_iterator<std::string>(iss), std::istream_iterator<std::string>(), std::back_inserter<std::vector<std::string> >(slova)); //pozadovany cyklus :) for_each (slova.begin(), slova.end(),pis); } int main() { std::string tosplit = "peter martin jano fero"; vypisto(tosplit); }
int main() { std::string names("peter martin jano fero"); std::istringstream iss(names); typedef std::istream_iterator<std::string> iss_iterator; for(iss_iterator it(iss); it != iss_iterator(); ++it) std::cout << "ahoj " << *it << std::endl; return 0; }
>>
std::string names("peter martin jano fero"); std::istringstream iss(names); std::string sub; while(iss >> sub){ std::cout << "ahoj " << sub; }
package main import "fmt" import "strings" func main() { a := "peter martin jano fero" for _, s := range strings.Split(a, " ") { fmt.Printf("ahoj %s\n", s) } }
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.