blueloveTH 2 лет назад
Родитель
Сommit
ea2e16c931
1 измененных файлов с 8 добавлено и 2 удалено
  1. 8 2
      src/str.cpp

+ 8 - 2
src/str.cpp

@@ -208,13 +208,19 @@ int utf8len(unsigned char c, bool suppress){
 
     Str Str::lower() const{
         std::string copy(data, size);
-        std::transform(copy.begin(), copy.end(), copy.begin(), [](unsigned char c){ return std::tolower(c); });
+        std::transform(copy.begin(), copy.end(), copy.begin(), [](unsigned char c){
+            if('A' <= c && c <= 'Z') return c + ('a' - 'A');
+            return (int)c;
+        });
         return Str(copy);
     }
 
     Str Str::upper() const{
         std::string copy(data, size);
-        std::transform(copy.begin(), copy.end(), copy.begin(), [](unsigned char c){ return std::toupper(c); });
+        std::transform(copy.begin(), copy.end(), copy.begin(), [](unsigned char c){
+            if('a' <= c && c <= 'z') return c - ('a' - 'A');
+            return (int)c;
+        });
         return Str(copy);
     }