tlx
replace.hpp
Go to the documentation of this file.
1 /*******************************************************************************
2  * tlx/string/replace.hpp
3  *
4  * Part of tlx - http://panthema.net/tlx
5  *
6  * Copyright (C) 2007-2017 Timo Bingmann <tb@panthema.net>
7  *
8  * All rights reserved. Published under the Boost Software License, Version 1.0
9  ******************************************************************************/
10 
11 #ifndef TLX_STRING_REPLACE_HEADER
12 #define TLX_STRING_REPLACE_HEADER
13 
14 #include <string>
15 
16 namespace tlx {
17 
18 //! \addtogroup tlx_string
19 //! \{
20 //! \name Search and Replace
21 //! \{
22 
23 /******************************************************************************/
24 // replace_first() in-place
25 
26 /*!
27  * Replace only the first occurrence of needle in str. The needle will be
28  * replaced with instead, if found. The replacement is done in the given string
29  * and a reference to the same is returned.
30  *
31  * \param str the string to process
32  * \param needle string to search for in str
33  * \param instead replace needle with instead
34  * \return reference to str
35  */
36 std::string& replace_first(
37  std::string* str, const std::string& needle, const std::string& instead);
38 
39 /*!
40  * Replace only the first occurrence of needle in str. The needle will be
41  * replaced with instead, if found. The replacement is done in the given string
42  * and a reference to the same is returned.
43  *
44  * \param str the string to process
45  * \param needle string to search for in str
46  * \param instead replace needle with instead
47  * \return reference to str
48  */
49 std::string& replace_first(
50  std::string* str, const std::string& needle, const char* instead);
51 
52 /*!
53  * Replace only the first occurrence of needle in str. The needle will be
54  * replaced with instead, if found. The replacement is done in the given string
55  * and a reference to the same is returned.
56  *
57  * \param str the string to process
58  * \param needle string to search for in str
59  * \param instead replace needle with instead
60  * \return reference to str
61  */
62 std::string& replace_first(
63  std::string* str, const char* needle, const std::string& instead);
64 
65 /*!
66  * Replace only the first occurrence of needle in str. The needle will be
67  * replaced with instead, if found. The replacement is done in the given string
68  * and a reference to the same is returned.
69  *
70  * \param str the string to process
71  * \param needle string to search for in str
72  * \param instead replace needle with instead
73  * \return reference to str
74  */
75 std::string& replace_first(
76  std::string* str, const char* needle, const char* instead);
77 
78 /*!
79  * Replace only the first occurrence of needle in str. The needle will be
80  * replaced with instead, if found. The replacement is done in the given string
81  * and a reference to the same is returned.
82  *
83  * \param str the string to process
84  * \param needle character to search for in str
85  * \param instead replace needle with instead
86  * \return reference to str
87  */
88 std::string& replace_first(std::string* str, char needle, char instead);
89 
90 /******************************************************************************/
91 // replace_first() copy
92 
93 /*!
94  * Replace only the first occurrence of needle in str. The needle will be
95  * replaced with instead, if found. Returns a copy of the string with the
96  * possible replacement.
97  *
98  * \param str the string to process
99  * \param needle string to search for in str
100  * \param instead replace needle with instead
101  * \return copy of string possibly with replacement
102  */
103 std::string replace_first(
104  const std::string& str,
105  const std::string& needle, const std::string& instead);
106 
107 /*!
108  * Replace only the first occurrence of needle in str. The needle will be
109  * replaced with instead, if found. Returns a copy of the string with the
110  * possible replacement.
111  *
112  * \param str the string to process
113  * \param needle string to search for in str
114  * \param instead replace needle with instead
115  * \return copy of string possibly with replacement
116  */
117 std::string replace_first(
118  const std::string& str, const std::string& needle, const char* instead);
119 
120 /*!
121  * Replace only the first occurrence of needle in str. The needle will be
122  * replaced with instead, if found. Returns a copy of the string with the
123  * possible replacement.
124  *
125  * \param str the string to process
126  * \param needle string to search for in str
127  * \param instead replace needle with instead
128  * \return copy of string possibly with replacement
129  */
130 std::string replace_first(
131  const std::string& str, const char* needle, const std::string& instead);
132 
133 /*!
134  * Replace only the first occurrence of needle in str. The needle will be
135  * replaced with instead, if found. Returns a copy of the string with the
136  * possible replacement.
137  *
138  * \param str the string to process
139  * \param needle string to search for in str
140  * \param instead replace needle with instead
141  * \return copy of string possibly with replacement
142  */
143 std::string replace_first(
144  const std::string& str, const char* needle, const char* instead);
145 
146 /*!
147  * Replace only the first occurrence of needle in str. The needle will be
148  * replaced with instead, if found. Returns a copy of the string with the
149  * possible replacement.
150  *
151  * \param str the string to process
152  * \param needle character to search for in str
153  * \param instead replace needle with instead
154  * \return copy of string possibly with replacement
155  */
156 std::string replace_first(const std::string& str, char needle, char instead);
157 
158 /******************************************************************************/
159 // replace_all() in-place
160 
161 /*!
162  * Replace all occurrences of needle in str. Each needle will be replaced with
163  * instead, if found. The replacement is done in the given string and a
164  * reference to the same is returned.
165  *
166  * \param str the string to process
167  * \param needle string to search for in str
168  * \param instead replace needle with instead
169  * \return reference to str
170  */
171 std::string& replace_all(
172  std::string* str, const std::string& needle, const std::string& instead);
173 
174 /*!
175  * Replace all occurrences of needle in str. Each needle will be replaced with
176  * instead, if found. The replacement is done in the given string and a
177  * reference to the same is returned.
178  *
179  * \param str the string to process
180  * \param needle string to search for in str
181  * \param instead replace needle with instead
182  * \return reference to str
183  */
184 std::string& replace_all(
185  std::string* str, const std::string& needle, const char* instead);
186 
187 /*!
188  * Replace all occurrences of needle in str. Each needle will be replaced with
189  * instead, if found. The replacement is done in the given string and a
190  * reference to the same is returned.
191  *
192  * \param str the string to process
193  * \param needle string to search for in str
194  * \param instead replace needle with instead
195  * \return reference to str
196  */
197 std::string& replace_all(
198  std::string* str, const char* needle, const std::string& instead);
199 
200 /*!
201  * Replace all occurrences of needle in str. Each needle will be replaced with
202  * instead, if found. The replacement is done in the given string and a
203  * reference to the same is returned.
204  *
205  * \param str the string to process
206  * \param needle string to search for in str
207  * \param instead replace needle with instead
208  * \return reference to str
209  */
210 std::string& replace_all(
211  std::string* str, const char* needle, const char* instead);
212 
213 /*!
214  * Replace all occurrences of needle in str. Each needle will be replaced with
215  * instead, if found. The replacement is done in the given string and a
216  * reference to the same is returned.
217  *
218  * \param str the string to process
219  * \param needle character to search for in str
220  * \param instead replace needle with instead
221  * \return reference to str
222  */
223 std::string& replace_all(std::string* str, char needle, char instead);
224 
225 /******************************************************************************/
226 // replace_all() copy
227 
228 /*!
229  * Replace all occurrences of needle in str. Each needle will be replaced with
230  * instead, if found. Returns a copy of the string with possible replacements.
231  *
232  * \param str the string to process
233  * \param needle string to search for in str
234  * \param instead replace needle with instead
235  * \return copy of string possibly with replacements
236  */
237 std::string replace_all(
238  const std::string& str,
239  const std::string& needle, const std::string& instead);
240 
241 /*!
242  * Replace all occurrences of needle in str. Each needle will be replaced with
243  * instead, if found. Returns a copy of the string with possible replacements.
244  *
245  * \param str the string to process
246  * \param needle string to search for in str
247  * \param instead replace needle with instead
248  * \return copy of string possibly with replacements
249  */
250 std::string replace_all(
251  const std::string& str, const std::string& needle, const char* instead);
252 
253 /*!
254  * Replace all occurrences of needle in str. Each needle will be replaced with
255  * instead, if found. Returns a copy of the string with possible replacements.
256  *
257  * \param str the string to process
258  * \param needle string to search for in str
259  * \param instead replace needle with instead
260  * \return copy of string possibly with replacements
261  */
262 std::string replace_all(
263  const std::string& str, const char* needle, const std::string& instead);
264 
265 /*!
266  * Replace all occurrences of needle in str. Each needle will be replaced with
267  * instead, if found. Returns a copy of the string with possible replacements.
268  *
269  * \param str the string to process
270  * \param needle string to search for in str
271  * \param instead replace needle with instead
272  * \return copy of string possibly with replacements
273  */
274 std::string replace_all(
275  const std::string& str, const char* needle, const char* instead);
276 
277 /*!
278  * Replace all occurrences of needle in str. Each needle will be replaced with
279  * instead, if found. Returns a copy of the string with possible replacements.
280  *
281  * \param str the string to process
282  * \param needle character to search for in str
283  * \param instead replace needle with instead
284  * \return copy of string possibly with replacements
285  */
286 std::string replace_all(const std::string& str, char needle, char instead);
287 
288 //! \}
289 //! \}
290 
291 } // namespace tlx
292 
293 #endif // !TLX_STRING_REPLACE_HEADER
294 
295 /******************************************************************************/
std::string & replace_all(std::string *str, const std::string &needle, const std::string &instead)
Replace all occurrences of needle in str.
Definition: replace.cpp:141
std::string & replace_first(std::string *str, const std::string &needle, const std::string &instead)
Replace only the first occurrence of needle in str.
Definition: replace.cpp:21