Portál AbcLinuxu, 10. listopadu 2025 02:05
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);
}
s/hub/ryb/ alebo s/ceren/kosik/
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.