0

How do retrieve the first word of a string in C++?

For example,

"abcde fghijk" 

I would like to retrieve abcde. Also what do I do to retrieve fghijk? Is there a convenient function for this or should I just code it?

1

3 Answers 3

4

Use split...

#include <boost/algorithm/string.hpp> std::vector<std::string> strs; boost::split(strs, "string to split", boost::is_any_of("\t ")); 
Sign up to request clarification or add additional context in comments.

Comments

2

Use stringstreams (<sstream> header)

std::string str ="abcde fghijk"; std::istringstream iss(str); std::string first, second; iss >> first >> second; 

Comments

2
#include <iostream> #include <string> #include <sstream> #include <algorithm> #include <iterator> #include <vector> std::vector<std::string> get_words(std::string sentence) { std::stringstream ss(sentence); std::istream_iterator<std::string> begin(ss); std::istream_iterator<std::string> end; return std::vector<std::string>(begin, end); } int main() { std::string s = "abcde fghijk"; std::vector<std::string> vstrings = get_words(s); //the vector vstrings contains the words, now print them! std::copy(vstrings.begin(), vstrings.end(), std::ostream_iterator<std::string>(std::cout, "\n")); return 0; } 

Output:

abcde fghijk 

Online demo : http://ideone.com/9RjKw

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.