|
Boost Users : |
Subject: Re: [Boost-users] [string algorithms] finding last digit
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2008-09-09 11:05:28
AMDG
Peter Barker wrote:
> Hello,
>
> I have the following program:
>
> #include <string>
>
> #include <boost/algorithm/string/classification.hpp>
> #include <boost/algorithm/string/finder.hpp>
>
> int main()
> {
> std::string str("12.5e");
>
> boost::last_finder(str,boost::is_digit()); // <--- is this sort of right?
> }
>
> What I'm trying to do is find the last occurence of a digit in my
> string (and learn a bit more about Boost.StringAlgorithms!). Am I
> going down the correct route here, and if so would someone be so kind
> to add to my program to show how I could obtain and output the index?
> The call operator for last_finder accepts two paramters which has
> thrown me as I thought the range was defined at construction.
>
last_finder searches for the substring specified in the constructor,
in the string passed to the function call operator. You can use
the standard library fairly easily in this case:
#include <string>
#include <algorithm>
#include <iostream>
#include <boost/algorithm/string/classification.hpp>
int main()
{
std::string str("12.5e");
std::cout << (std::find_if(str.rbegin(), str.rend(),
boost::is_digit()).base() - str.begin() - 1) << std::endl;
}
In Christ,
Steven Watanabe
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net