1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
/**
@file stringutils.h
@maintainer Morgan McGuire, matrix@graphics3d.com
@author 2000-09-09
@edited 2002-11-30
*/
#ifndef G3D_STRINGUTILS_H
#define G3D_STRINGUTILS_H
#include "G3D/platform.h"
#include "G3D/Array.h"
#include <string>
namespace G3D {
extern const char* NEWLINE;
/**
Returns true if the test string begins with the pattern string.
*/
bool beginsWith(
const std::string& test,
const std::string& pattern);
/**
Returns true if the test string ends with the pattern string.
*/
bool endsWith(
const std::string& test,
const std::string& pattern);
/**
Produces a new string that is the input string
wrapped at a certain number of columns (where
the line is broken at the latest space before the
column limit.) Platform specific NEWLINEs
are inserted to wrap.
*/
std::string wordWrap(
const std::string& input,
int numCols);
/**
A comparison function for passing to Array::sort.
*/
int stringCompare(
const std::string& s1,
const std::string& s2);
int stringPtrCompare(
const std::string* s1,
const std::string* s2);
/**
Returns a new string that is an uppercase version of x.
*/
std::string toUpper(
const std::string& x);
std::string toLower(
const std::string& x);
/**
Splits x at each occurance of splitChar.
*/
G3D::Array<std::string> stringSplit(
const std::string& x,
char splitChar);
/**
joinChar is not inserted at the beginning or end, just in between
elements.
*/
std::string stringJoin(
const G3D::Array<std::string>& a,
char joinChar);
std::string stringJoin(
const G3D::Array<std::string>& a,
const std::string& joinStr);
/**
Strips whitespace from both ends of the string.
*/
std::string trimWhitespace(
const std::string& s);
/** These standard C functions are renamed for clarity/naming
conventions and to return bool, not int.
*/
inline bool isWhiteSpace(const char c) {
return isspace(c) != 0;
}
/** These standard C functions are renamed for clarity/naming
conventions and to return bool, not int.
*/
inline bool isNewline(const char c) {
return (c == '\n') || (c == '\r');
}
/** These standard C functions are renamed for clarity/naming
conventions and to return bool, not int.
*/
inline bool isDigit(const char c) {
return isdigit(c) != 0;
}
/** These standard C functions are renamed for clarity/naming
conventions and to return bool, not int.
*/
inline bool isLetter(const char c) {
return isalpha(c) != 0;
}
inline bool isSlash(const char c) {
return (c == '\\') || (c == '/');
}
inline bool isQuote(const char c) {
return (c == '\'') || (c == '\"');
}
}; // namespace
#endif
|