LocARNA-1.8.11
string1.hh
1 #ifndef LOCARNA_STRING1_HH
2 #define LOCARNA_STRING1_HH
3 
4 #ifdef HAVE_CONFIG_H
5 # include <config.h>
6 #endif
7 
8 #include <string>
9 #include <algorithm>
10 
11 
12 namespace LocARNA {
22  class string1 {
23  std::string s_;
24  public:
25 
31  explicit
32  string1(const std::string &s): s_(s) {}
33 
39  string1(const string1 &s): s_(s.s_) {}
40 
46  const std::string &
47  str() const {
48  return s_;
49  }
50 
56  std::string &
57  str() {
58  return s_;
59  }
60 
69  const char&
70  operator [](size_t i) const {
71  assert(i>=1);
72  assert(i<=s_.length());
73  return s_[i-1];
74  }
75 
84  char&
85  operator [](size_t i) {
86  assert(i>=1);
87  assert(i<=s_.length());
88  return s_[i-1];
89  }
90 
96  size_t
97  length() const {
98  return s_.length();
99  }
100 
109  string1 &
110  operator =(const string1 &s) {s_ = s.s_; return *this;}
111 
116  void
118  std::reverse(s_.begin(),s_.end());
119  }
120 
126  void
127  push_back(char c) {
128  s_.push_back(c);
129  }
130 
139  string1
140  substr(size_t pos, size_t len) const {
141  assert(pos>=1);
142  assert(pos<=s_.length());
143  return string1(s_.substr(pos-1,len));
144  }
145 
146  };
147 
148 } // end namespace LocARNA
149 
150 #endif // LOCARNA_STRING1_HH
size_t length() const
Provide length.
Definition: string1.hh:97
void reverse()
reverse string
Definition: string1.hh:117
std::string & str()
Definition: string1.hh:57
string1(const string1 &s)
Copy constructor.
Definition: string1.hh:39
Definition: aligner.cc:17
const char & operator[](size_t i) const
Read access.
Definition: string1.hh:70
A simple 1-based string.
Definition: string1.hh:22
string1(const std::string &s)
Construct from std::string.
Definition: string1.hh:32
const std::string & str() const
Definition: string1.hh:47
string1 substr(size_t pos, size_t len) const
Substring.
Definition: string1.hh:140
string1 & operator=(const string1 &s)
Assignment operator.
Definition: string1.hh:110
void push_back(char c)
push back character
Definition: string1.hh:127