PhoenixSlider  2.0.0
Tool to create HTML presentation automatically
PString.h
Go to the documentation of this file.
1 /***************************************
2  Auteur : Pierre Aubert
3  Mail : pierre.aubert@lapp.in2p3.fr
4  Licence : CeCILL-C
5 ****************************************/
6 
7 #ifndef __PSTRING_H__
8 #define __PSTRING_H__
9 
10 #include <string.h>
11 #include <string>
12 #include <iostream>
13 #include <vector>
14 
16 class PString : public std::string{
17  public:
18  PString();
19  PString(const char * str);
20  PString(const std::string & str);
21  PString(const PString & other);
22  virtual ~PString();
23 
24  template<typename T>
25  static PString toString(const T & value);
26  template<typename T>
27  static T toValue(const PString & other);
28 
29  template<typename T>
30  PString & fromValue(const T & other);
31  template<typename T>
32  T toValue() const;
33 
34  PString & operator = (const PString & other);
35  PString & operator = (const std::string & other);
36  template<typename T>
37  PString & operator = (const T & other);
38 
39  PString & operator += (const PString & other);
40  PString & operator += (const std::string & other);
41  PString & operator += (char ch);
42 
43  PString & add(const PString & other);
44  PString & add(const std::string & other);
45  PString & add(char ch);
46  PString & add(const char * str);
47 
48  template<typename T>
49  PString & operator += (const T & other);
50  template<typename T>
51  PString & operator << (const T & other);
52 
53  size_t findPatternIndex(const PString & pattern, size_t offset = 0lu) const;
54  PString getBetweenDelimiter(const PString & beginPattern, const PString & endPattern) const;
55  PString replace(const PString & pattern, const PString & replaceStr) const;
56  PString replace(const PString & pattern, const PString & replaceStr, size_t maxNbReplace) const;
57  PString replaceChar(const PString & vecChar, const PString & replaceStr) const;
58  PString format(const PString & arg) const;
59  bool isSameBegining(const PString & beginStr) const;
60  size_t count(char ch) const;
61  size_t count(const PString & patern) const;
62  bool find(char ch) const;
63  bool find(const PString & listChar) const;
64  PString keepChar(const PString & listChar) const;
65 
66  PString getCommonBegining(const PString & other) const;
67 
68  std::vector<PString> split(char separator) const;
69  std::vector<PString> split(const PString & vecSeparator) const;
70  PString & merge(const std::vector<PString> & vecStr, const PString & separator = "");
71 
72  PString eraseChar(char ch) const;
73  PString eraseChar(const PString & vecChar) const;
74  PString eraseFirstChar(const PString & vecChar) const;
75  PString eraseLastChar(const PString & vecChar) const;
76  PString eraseFirstLastChar(const PString & vecChar) const;
77 
78  bool isUpperCase() const;
79  bool isLowerCase() const;
80  bool isNumber() const;
81  PString toLower() const;
82  PString toLowerUnderscore() const;
83  PString toUpper() const;
84  PString firstToLower() const;
85  PString firstToUpper() const;
86 
87  PString escapeStr(const PString & strCharToEscape, const PString & escapeSeq) const;
88 
89  protected:
90  void copyPString(const PString & other);
91  void copyPString(const std::string & other);
92 
93  void concatenatePString(const PString & other);
94  void concatenatePString(const std::string & other);
95  private:
96  void initialisationPString();
97 };
98 
99 typedef std::vector<PString> PVecString;
100 
101 PString phoenix_charToString(const char * ch);
102 bool phoenix_isCharUpperCase(char ch);
103 bool phoenix_isCharLowerCase(char ch);
104 bool phoenix_isCharNumber(char ch);
105 
106 void eraseFirstLastChar(PVecString & vecOut, const PVecString & vecStr, const PString & vecChar);
107 PVecString eraseFirstLastChar(const PVecString & vecStr, const PString & vecChar);
108 
109 #include "PString_impl.h"
110 
111 #endif
112 
std::vector< PString > PVecString
Definition: PString.h:99
bool phoenix_isCharNumber(char ch)
Tels if the character is a number or not.
Definition: PString.cpp:43
PString phoenix_charToString(const char *ch)
Convert a char pointer into a string (event if the char pointer is NULL)
Definition: PString.cpp:14
void eraseFirstLastChar(PVecString &vecOut, const PVecString &vecStr, const PString &vecChar)
Erase first and last characters of all PString in given vector.
Definition: PString.cpp:52
bool phoenix_isCharUpperCase(char ch)
Tels if the character is upper case letter.
Definition: PString.cpp:27
bool phoenix_isCharLowerCase(char ch)
Tels if the character is lower case letter.
Definition: PString.cpp:35
Extends the std::string.
Definition: PString.h:16
PString & operator=(const PString &other)
Definition of equal operator of PString.
Definition: PString.cpp:112
PString & add(const PString &other)
Add a PString to an other.
Definition: PString.cpp:154
bool isLowerCase() const
Say if the given PString is in lowercase.
Definition: PString.cpp:630
PString toLowerUnderscore() const
Convert std::string in lower case and space in '_'.
Definition: PString.cpp:680
PString getCommonBegining(const PString &other) const
Get the common begining between the current PString and other.
Definition: PString.cpp:461
size_t findPatternIndex(const PString &pattern, size_t offset=0lu) const
Get the index of the first character of the given pattern.
Definition: PString.cpp:204
virtual ~PString()
Destructeur of PString.
Definition: PString.cpp:104
PString & fromValue(const T &other)
Convert a value to a PString.
Definition: PString_impl.h:36
static PString toString(const T &value)
Convert a value to a PString.
Definition: PString_impl.h:18
PString replace(const PString &pattern, const PString &replaceStr) const
Replace a PString into an other PString.
Definition: PString.cpp:251
PString eraseChar(char ch) const
Erase char ch of current string.
Definition: PString.cpp:540
PString keepChar(const PString &listChar) const
Keep only the characters in the given listChar.
Definition: PString.cpp:446
PString format(const PString &arg) const
Replace first {} with arg.
Definition: PString.cpp:345
std::vector< PString > split(char separator) const
Cut a PString on the given separator char.
Definition: PString.cpp:482
PString toLower() const
Convert PString in lower case.
Definition: PString.cpp:660
PString toUpper() const
Convert std::string in upper case.
Definition: PString.cpp:701
PString replaceChar(const PString &vecChar, const PString &replaceStr) const
Replace characters in vecChar by replaceStr.
Definition: PString.cpp:329
bool find(char ch) const
Find a char in a string.
Definition: PString.cpp:418
PString firstToLower() const
Convert first letter of the PString in lower case.
Definition: PString.cpp:721
PString escapeStr(const PString &strCharToEscape, const PString &escapeSeq) const
Escape given string with passed characters.
Definition: PString.cpp:751
PString & operator<<(const T &other)
Append type in PString.
Definition: PString_impl.h:78
PString & operator+=(const PString &other)
Add a PString to an other.
Definition: PString.cpp:130
bool isNumber() const
Say if the given PString is composed of numbers.
Definition: PString.cpp:645
bool isSameBegining(const PString &beginStr) const
Say if the current PString has the same begining of beginStr.
Definition: PString.cpp:353
T toValue() const
Convert the current string into a value.
Definition: PString_impl.h:46
size_t count(char ch) const
Count the number of char ch in the current PString.
Definition: PString.cpp:370
PString & merge(const std::vector< PString > &vecStr, const PString &separator="")
Merge a set of PString.
Definition: PString.cpp:526
PString eraseFirstLastChar(const PString &vecChar) const
Erase first and last char in a string.
Definition: PString.cpp:607
void copyPString(const PString &other)
Copy function of PString.
Definition: PString.cpp:768
void concatenatePString(const PString &other)
Concatenate a PString into the current PString.
Definition: PString.cpp:784
PString eraseFirstChar(const PString &vecChar) const
Erase first char in a string.
Definition: PString.cpp:564
PString getBetweenDelimiter(const PString &beginPattern, const PString &endPattern) const
Get the PString between delimiter.
Definition: PString.cpp:236
PString()
Default constructor of PString.
Definition: PString.cpp:70
bool isUpperCase() const
Say if the given PString is in uppercase.
Definition: PString.cpp:615
void initialisationPString()
Initialisation function of the class PString.
Definition: PString.cpp:802
PString firstToUpper() const
Convert first letter of the PString in upper case.
Definition: PString.cpp:735
PString eraseLastChar(const PString &vecChar) const
Erase first and last char in a string.
Definition: PString.cpp:583