World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
Strings.cpp
См. документацию.
1 #include <stdarg.h>
2 #include <vector>
3 #include <algorithm>
4 
5 #include "Engine/Strings.h"
6 
7 String StringFromInt(int value) { return StringPrintf("%d", value); }
8 
9 String StringPrintf(const char *fmt, ...) {
10  int size = 1024;
11  char *buffer = new char[size];
12 
13  va_list va;
14  va_start(va, fmt);
15  {
16  int nsize = vsnprintf(buffer, size, fmt, va);
17  if (size <= nsize) { // fail delete buffer and try again
18  delete[] buffer;
19  buffer = new char[nsize + 1]; // +1 for \0
20  nsize = vsnprintf(buffer, size, fmt, va);
21  }
22  }
23  va_end(va);
24 
25  String ret(buffer);
26  delete[] buffer;
27  return ret;
28 }
29 
30 std::vector<char *> Tokenize(char *input, const char separator) {
31  std::vector<char *> retVect;
32  retVect.push_back(input);
33  while (*input) {
34  if (*input == separator) {
35  *input = '\0';
36  retVect.push_back(input + 1);
37  }
38  ++input;
39  }
40  return retVect;
41 }
42 
43 String MakeLower(const String &text) {
44  std::string tmp = text;
45  std::transform(tmp.begin(), tmp.end(), tmp.begin(), ::tolower);
46  return tmp;
47 }
input
GLenum GLenum GLenum input
Definition: SDL_opengl_glext.h:9377
StringFromInt
String StringFromInt(int value)
Definition: Strings.cpp:7
buffer
EGLContext EGLenum EGLClientBuffer buffer
Definition: SDL_egl.h:952
value
EGLSyncKHR EGLint EGLint * value
Definition: SDL_egl.h:899
transform
GLuint GLenum GLenum transform
Definition: SDL_opengl_glext.h:9999
MakeLower
String MakeLower(const String &text)
Definition: Strings.cpp:43
string
GLsizei const GLchar *const * string
Definition: SDL_opengl_glext.h:691
size
GLsizeiptr size
Definition: SDL_opengl_glext.h:540
Tokenize
std::vector< char * > Tokenize(char *input, const char separator)
Definition: Strings.cpp:30
StringPrintf
String StringPrintf(const char *fmt,...)
Definition: Strings.cpp:9
String
std::string String
Definition: Strings.h:10
Strings.h