如何编写示例代码实现高效的大小写转换算法?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1029个文字,预计阅读时间需要5分钟。
简要概述+最近工作中遇到一个需求,是需要将URL中的query参数的key全部转换为大写或小写,键值对的数目较多,但全部都是英文字母,无需考虑非字母的情况。实现比较快的做法是使用replace函数。
简述
最近工作中遇到一个需求,是需要将URL中的 query 参数的key全部转换为小写或者大写,键值对的数量有点多,但全部都是英文字母,无需考虑非字母的情况。
实现比较快的做法是使用STL或C标准库中的转换接口,如下:
#include <string> #include <cctype> #include <algorithm> // 字符串中的大写字符转小写 std::string strtolower(std::string s) { transform(s.begin(), s.end(), s.begin(), ::tolower); return s; } // 字符串中的小写字符转大写 std::string strtoupper(std::string s) { transform(s.begin(), s.end(), s.begin(), ::toupper); return s; }
这个方法虽然很好,但是效率不是很高。
分析了一下ascii码的码值,发现大小写字母的ascii码之间是有规律的。
本文共计1029个文字,预计阅读时间需要5分钟。
简要概述+最近工作中遇到一个需求,是需要将URL中的query参数的key全部转换为大写或小写,键值对的数目较多,但全部都是英文字母,无需考虑非字母的情况。实现比较快的做法是使用replace函数。
简述
最近工作中遇到一个需求,是需要将URL中的 query 参数的key全部转换为小写或者大写,键值对的数量有点多,但全部都是英文字母,无需考虑非字母的情况。
实现比较快的做法是使用STL或C标准库中的转换接口,如下:
#include <string> #include <cctype> #include <algorithm> // 字符串中的大写字符转小写 std::string strtolower(std::string s) { transform(s.begin(), s.end(), s.begin(), ::tolower); return s; } // 字符串中的小写字符转大写 std::string strtoupper(std::string s) { transform(s.begin(), s.end(), s.begin(), ::toupper); return s; }
这个方法虽然很好,但是效率不是很高。
分析了一下ascii码的码值,发现大小写字母的ascii码之间是有规律的。

