Changeset 12245


Ignore:
Timestamp:
10/23/11 15:08:15 (13 years ago)
Author:
tbretz
Message:
Reverting to last revision.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/FACT++/src/tools.cc

    r12243 r12245  
    7373    return str.substr(start, end-start+1);
    7474}
    75 
    76 // --------------------------------------------------------------------------
    77 //
    78 //! This is a static helper to remove leading and trailing whitespaces.
    79 //!
    80 //! Usage example:
    81 //!
    82 //! \code
    83 //!    string str = "     Dies ist ein test fuer einen ganz     langen Satz "
    84 //!        "und ob er korrekt umgebrochen und formatiert wird. Alles "
    85 //!        "nur ein simpler test aber trotzdem ganz wichtig.";
    86 //!
    87 //!    cout << setfill('-') << setw(40) << "+" << endl;
    88 //!    while (1)
    89 //!    {
    90 //!        const string rc = Tools::Wrap(str, 40);
    91 //!        if (rc.empty())
    92 //!            break;
    93 //!        cout << rc << endl;
    94 //!    }
    95 //! \endcode
    96 //!
    97 string Tools::Wrap(string &str, size_t width)
    98 {
    99     const size_t pos = str.length()<width ? string::npos : str.find_last_of(' ', width);
    100     if (pos==string::npos)
    101     {
    102         const string rc = str;
    103         str = "";
    104         return rc;
    105     }
    106 
    107     const size_t indent = str.find_first_not_of(' ');
    108 
    109     const string rc = str.substr(0, pos);
    110     const size_t p2 = str.find_first_not_of(' ', pos+1);
    111 
    112     str = str.substr(0, indent) + str.substr(p2==string::npos ? pos+1 : p2);
    113 
    114     return rc;
    115 }
Note: See TracChangeset for help on using the changeset viewer.