Here are two versions in plain ANSI C++.
#include <string>
#include <sstream>
#include <iostream>
using namespace std;
static string reverseWords(string const& instr)
{
istringstream iss(instr);
string outstr;
string word;
iss >> outstr;
while (iss >> word)
outstr = word + ' ' + outstr;
return outstr;
}
int main()
{
string s = " one two \t three four ";
string sret = reverseWords(s);
cout << "in='" << s << "' " << "out='" << sret << "'" << endl;
return 0;
}
and
#include <string>
#include <sstream>
#include <iostream>
#include <deque>
#include <algorithm>
using namespace std;
static string reverseWords(string const& instr)
{
istringstream iss(instr);
deque<string> dqs;
copy(istream_iterator<string>(iss), istream_iterator<string>(),
front_inserter(dqs));
if (dqs.empty()) return "";
ostringstream oss;
copy(dqs.begin(), --dqs.end(), ostream_iterator<string>(oss, " "))
+;
oss << dqs.back();
return oss.str();
// ... or build string directly instead of using ostringstream
// string outstr(dqs.front());
// for (deque<string>::const_iterator i = ++dqs.begin(); i != dqs.
+end(); ++i)
// outstr += ' ' + *i;
// return outstr;
}
int main()
{
string s = " one two \t three four ";
string sret = reverseWords(s);
cout << "in='" << s << "' " << "out='" << sret << "'" << endl;
return 0;
}
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|