1
0
blueloveTH 2 жил өмнө
parent
commit
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{
     Str Str::lower() const{
         std::string copy(data, size);
         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);
         return Str(copy);
     }
     }
 
 
     Str Str::upper() const{
     Str Str::upper() const{
         std::string copy(data, size);
         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);
         return Str(copy);
     }
     }