KrisLibrary  1.0.0
stringutils.h
Go to the documentation of this file.
1 #ifndef UTILS_STRING_H
2 #define UTILS_STRING_H
3 
4 #include <string>
5 #include <vector>
6 
14 
16 char CloseBracket(char c);
17 
19 void Lowercase(char* str);
20 void Uppercase(char* str);
21 void Lowercase(std::string& str);
22 void Uppercase(std::string& str);
23 
24 //strips whitespace from str
25 std::string Strip(const std::string& str);
26 std::string LStrip(const std::string& str);
27 std::string RStrip(const std::string& str);
28 
29 //divides a string into multiple strings given a string containing deliminators
30 std::vector<std::string> Split(const std::string& str, const std::string& delim);
31 
33 int ReplaceAll(std::string& str,const char* strfind,const char* strreplace);
34 
36 bool StartsWith(const char* str,const char* prefix);
38 bool EndsWith(const char* str,const char* suffix);
39 
40 bool IsValidCToken(const char* str);
41 bool IsValidInteger(const char* str);
42 bool IsValidFloat(const char* str);
43 
46 int DetectNumericalPattern(const char* str,char prefix[],char suffix[],int& numDigits);
47 
48 //For a string in the pattern XXXX####XXXX, increments the #### part.
49 //The number of digits can be 1-4. For a string with no digits,
50 //leaves the string unchanged.
51 void IncrementStringDigits(char* str);
52 void IncrementStringDigits(std::string& str);
53 
54 void ToBase64(const std::string& in,std::string& out);
55 void ToBase64(const char* in,int length,std::string& out);
56 void FromBase64(const std::string& in,std::string& out);
57 void FromBase64(const char* in,std::string& out);
58 
59 std::string ToBase64(const std::string& in);
60 std::string ToBase64(const char* in,int length);
61 std::string FromBase64(const std::string& in);
62 std::string FromBase64(const char* in);
63 
65 int LengthWithDOSEndlines(const char* str);
66 bool EndlinesToDOS(const char* str,char* out,int max);
67 bool EndlinesFromDOS(const char* str,char* out,int max);
68 void EndlinesToDOS(std::string& str);
69 void EndlinesFromDOS(std::string& str);
70 
72 const char* FileExtension (const char* str);
74 void ChangeFileExtension (char* str, const char* ext);
76 const char* GetFileName(const char* str);
78 void GetFilePath(const char* str, char* buf);
80 void StripExtension(char* str);
81 
83 std::string FileExtension (const std::string& str);
85 void ChangeFileExtension (std::string& str, const char* ext);
87 std::string GetFileName(const std::string& str);
89 std::string GetFilePath(const std::string& str);
91 void StripExtension(std::string& str);
92 
95 void SplitPath(const std::string& path,std::vector<std::string>& elements);
99 std::string ReducePath(const std::string& path);
103 std::string JoinPath(const std::vector<std::string>& path,char delim=0);
104 std::string JoinPath(const std::string& path1,const std::string& path2);
105 
106 #ifdef WIN32
107 #ifndef WCHAR
108 typedef wchar_t WCHAR; // wc, 16-bit UNICODE character
109 #endif //WCHAR
110 void ToWideChar(const char* str, WCHAR* buf, int maxBuf);
111 #endif //WIN32
112 
115 #endif
std::string JoinPath(const std::vector< std::string > &path, char delim=0)
Definition: stringutils.cpp:770
int LengthWithDOSEndlines(const char *str)
Dos-unix endline conversion.
Definition: stringutils.cpp:293
int DetectNumericalPattern(const char *str, char prefix[], char suffix[], int &numDigits)
Definition: stringutils.cpp:176
void StripExtension(char *str)
Removes the file extension of str.
Definition: stringutils.cpp:446
bool EndsWith(const char *str, const char *suffix)
Returns true if the end of the given string matches prefix.
Definition: stringutils.cpp:96
int ReplaceAll(std::string &str, const char *strfind, const char *strreplace)
Replace all instances of strfind with strreplace in str.
Definition: stringutils.cpp:72
bool StartsWith(const char *str, const char *prefix)
Returns true if the beginning of the given string matches prefix.
Definition: stringutils.cpp:85
std::string ReducePath(const std::string &path)
Definition: stringutils.cpp:739
char CloseBracket(char c)
Returns a "close bracket" character opposite c.
Definition: stringutils.cpp:10
void SplitPath(const std::string &path, std::vector< std::string > &elements)
Definition: stringutils.cpp:734
void GetFilePath(const char *str, char *buf)
Extracts the path from str (formatted as above) into buf, not including the trailing &#39;/&#39;...
Definition: stringutils.cpp:427
void Lowercase(char *str)
Turns the string into lower/uppercase.
Definition: stringutils.cpp:27
const char * FileExtension(const char *str)
Returns pointer to "ext" for str="filename.ext".
Definition: stringutils.cpp:386
const char * GetFileName(const char *str)
Returns "file.ext" for the str="dir1/dir2/.../file.ext".
Definition: stringutils.cpp:410
void ChangeFileExtension(char *str, const char *ext)
Replaces the file extension of str with ext, or concatenates .ext onto str.
Definition: stringutils.cpp:395