7fe829
#common #bug: fix toUpper/toLower functions
@@ -125,9 +125,12 @@ bool isDouble(std::wstring s) { return isDouble(::to_string(s)); }
|
|
125
125
|
|
126
126
|
std::string toUpper(std::string a) {
|
127
127
|
|
128
|
-
|
128
|
+
size_t size = a.size();
|
129
|
+
const char* cstr = a.c_str();
|
130
|
+
std::vector<char> buf(cstr, cstr + size + 1);
|
131
|
+
return _strupr(&buf[0]);
|
129
132
|
|
130
|
-
std::string ret
|
133
|
+
std::string ret(a);
|
131
134
|
for (int i = 0; i < (int)ret.length(); i++) ret[i] = toupper(ret[i]);
|
132
135
|
return ret;
|
133
136
|
|
@@ -135,9 +138,12 @@ std::string toUpper(std::string a) {
|
|
135
138
|
|
136
139
|
std::string toLower(std::string a) {
|
137
140
|
|
138
|
-
|
141
|
+
size_t size = a.size();
|
142
|
+
const char* cstr = a.c_str();
|
143
|
+
std::vector<char> buf(cstr, cstr + size + 1);
|
144
|
+
return _strlwr(&buf[0]);
|
139
145
|
|
140
|
-
std::string ret
|
146
|
+
std::string ret(a);
|
141
147
|
for (int i = 0; i < (int)ret.length(); i++) ret[i] = tolower(ret[i]);
|
142
148
|
return ret;
|
143
149
|
|
@@ -145,27 +151,26 @@ std::string toLower(std::string a) {
|
|
145
151
|
|
146
152
|
std::wstring toUpper(std::wstring a) {
|
147
153
|
|
148
|
-
|
154
|
+
size_t size = a.size();
|
155
|
+
const wchar_t* cstr = a.c_str();
|
156
|
+
std::vector<wchar_t> buf(cstr, cstr + size + 1);
|
157
|
+
return _wcsupr(&buf[0]);
|
149
158
|
|
150
|
-
std::wstring ret
|
151
|
-
for (int i = 0; i < (int)
|
159
|
+
std::wstring ret(a);
|
160
|
+
for (int i = 0; i < (int)ret.length(); i++) ret[i] = towupper(ret[i]);
|
152
|
-
wchar_t c = towupper(a[i]);
|
153
|
-
ret += c;
|
154
|
-
}
|
155
161
|
return ret;
|
156
162
|
|
157
163
|
}
|
158
164
|
|
159
165
|
std::wstring toLower(std::wstring a) {
|
160
166
|
|
161
|
-
|
167
|
+
size_t size = a.size();
|
168
|
+
const wchar_t* cstr = a.c_str();
|
169
|
+
std::vector<wchar_t> buf(cstr, cstr + size + 1);
|
170
|
+
return _wcslwr(&buf[0]);
|
162
171
|
|
163
|
-
|
164
|
-
|
172
|
+
std::wstring ret(a);
|
173
|
+
for (int i = 0; i < (int)ret.length(); i++) ret[i] = towlower(ret[i]);
|
165
|
-
ret.resize(length);
|
166
|
-
for (int i = 0; i < length; i++) {
|
167
|
-
ret[i] = towlower(a[i]);
|
168
|
-
}
|
169
174
|
return ret;
|
170
175
|
|
171
176
|
}
|