C++: string的大小写转换
转载 2014年12月02日 23:23:25 9806
将一个string转换成大写或者小写,是项目中经常需要做的事情,但string类里并没有提供这个方法。自己写个函数来实现,说起来挺简单,但做起来总让人觉得不方便。打个比方:早上起来想吃个汉堡,冰箱里有生牛肉,有面粉,也有微波炉,是可以自己做的,但是实在是太费事,没几个人愿意做。但是,打个电话给肯德基宅急送,10分钟后就有热乎乎的汉堡送上门了,大大节省了时间(时间就是金钱,你可以将时间用在更重要的开发工作上),并且味道也不差,何乐而不为呢?
STL的algorithm库确实给我们提供了这样的便利,使用模板函数transform可以轻松解决这个问题,开发人员只需要提供一个函数对象,例如将char转成大写的toupper函数或者小写的函数tolower函数。

transform原型:
[cpp] view plaincopy

template < class InputIterator, class OutputIterator, class UnaryOperator >  OutputIterator transform ( InputIterator first1, InputIterator last1,  OutputIterator result, UnaryOperator op );  template < class InputIterator1, class InputIterator2,  class OutputIterator, class BinaryOperator >  OutputIterator transform ( InputIterator1 first1, InputIterator1 last1,  InputIterator2 first2, OutputIterator result,  BinaryOperator binary_op );
[cpp] view plain copy
template < class InputIterator, class OutputIterator, class UnaryOperator >  OutputIterator transform ( InputIterator first1, InputIterator last1,  OutputIterator result, UnaryOperator op );  template < class InputIterator1, class InputIterator2,  class OutputIterator, class BinaryOperator >  OutputIterator transform ( InputIterator1 first1, InputIterator1 last1,  InputIterator2 first2, OutputIterator result,  BinaryOperator binary_op );  

测试代码:
[cpp] view plaincopy

#include <string>
#include <algorithm>
using namespace std;  int main()
{  string strA = "yasaken@126.com";  string strB = "LURY@LENOVO.com";  printf("Before transform:\n");  printf("strA:%s \n", strA.c_str());  printf("strB:%s \n\n", strB.c_str());  transform(strA.begin(), strA.end(), strA.begin(), ::toupper);  transform(strB.begin(), strB.end(), strB.begin(), ::toupper);  printf("After transform to toupper:\n");  printf("strA:%s \n", strA.c_str());  printf("strB:%s \n\n", strB.c_str());  transform(strA.begin(), strA.end(), strA.begin(), ::tolower);  transform(strB.begin(), strB.end(), strB.begin(), ::tolower);  printf("After transform to lower:\n");  printf("strA:%s \n", strA.c_str());  printf("strB:%s \n\n", strB.c_str());  return 0;
}  
[cpp] view plain copy
#include <string>
#include <algorithm>
using namespace std;  int main()
{  string strA = "yasaken@126.com";  string strB = "LURY@LENOVO.com";  printf("Before transform:\n");  printf("strA:%s \n", strA.c_str());  printf("strB:%s \n\n", strB.c_str());  transform(strA.begin(), strA.end(), strA.begin(), ::toupper);  transform(strB.begin(), strB.end(), strB.begin(), ::toupper);  printf("After transform to toupper:\n");  printf("strA:%s \n", strA.c_str());  printf("strB:%s \n\n", strB.c_str());  transform(strA.begin(), strA.end(), strA.begin(), ::tolower);  transform(strB.begin(), strB.end(), strB.begin(), ::tolower);  printf("After transform to lower:\n");  printf("strA:%s \n", strA.c_str());  printf("strB:%s \n\n", strB.c_str());  return 0;
}  

运行结果:
[cpp] view plaincopy

strA:yasaken@126.com
strB:LURY@LENOVO.com   After transform to toupper:
strA:YASAKEN@126.COM
strB:LURY@LENOVO.COM   After transform to lower:
strA:yasaken@126.com
strB:lury@lenovo.com
[cpp] view plain copy
strA:yasaken@126.com
strB:LURY@LENOVO.com   After transform to toupper:
strA:YASAKEN@126.COM
strB:LURY@LENOVO.COM   After transform to lower:
strA:yasaken@126.com
strB:lury@lenovo.com   

最后补一句:STL algorithm功能实在是太强劲了,非常推荐。

转载于:https://www.cnblogs.com/pzqu/p/9457617.html

C++: string的大小写转换相关推荐

  1. golang string 字符串 大小写转换

    package mainimport ("fmt""strings" )/* 1.func Title(s string) string 将字符串s每个单词首字 ...

  2. C++ string的大小写转换

    将一个string转换成大写或者小写,是项目中经常需要做的事情,但string类里并 没有提供这个方法.自己写个函数来实现,说起来挺简单,但做起来总让人觉得不方便.打个比方:早上起来想吃个汉堡,冰箱里 ...

  3. 用tolower()和toupper()来实现对string进行大小写转换

    int tolower(int c) 把给定的字母转换为小写字母. 函数原型: int tolower(int c); 参数 c:这是要被转换为小写的字母. 返回值:如果 c 有相对应的小写字母,则该 ...

  4. java怎么把大小写转换_JAVA 如何将String进行大小写转换

    /**格式化字段**/ private String convertString(String str, String beginUp){ char[] ch = str.toCharArray(); ...

  5. html5制作大小写转换,java大小写转换

    java怎样将大写字母转换成小写字母 具体代码如下,字符串中大.小写互转 1)输入 第一行只有一个整数m(m String类的toUpperCase()方法可以将一个字符串中的小写子母变成大写字母// ...

  6. C++ 笔记(22)— STL string 类(字符串赋值、访问、拼接、查找、翻转、大小写转换)

    1. 实例化和赋值 STL string #include <string> #include <iostream>int main () {using namespace s ...

  7. python复制指定字符串_python3.4学习笔记(十五) 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)...

    python3.4学习笔记(十五) 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) python print 不换行(在后面加上,end=''),prin ...

  8. python中uppercase是什么意思_python判断大小写并转换_python中string模块相关方法(大小写转换,字符串条件判断)....

    string模块主要包含关于字符串的处理函数,在这里列举经常会使用的一些函数. 在例如获取随机密码等之类的题时可能会用到这类函数 1.string.ascii_letters 获取所有ascii码中字 ...

  9. 学习笔记——String类常用方法(字符、字节、比较、查找、替换、拆分、截取、结构、格式化、连接、入池、驱除空格、长度计算、大小写转换等)

    1.字符串与字符 在jdk1.9之前提供string数组实现了包装处理,在String类里面提供相应的转换处理方法,这些方法包含构造方法与普通方法两类. public String​(char[] v ...

最新文章

  1. C++一学就废?试试这个项目包
  2. python科学计算和可视化编程软件_python科学计算与可视化
  3. [每日一题] 11gOCP 1z0-052 :2013-09-23 Oracle11g 内存参数设置...................................C7...
  4. 安卓开发基础面试题,Android面试必备的集合源码详解,附小技巧
  5. Catboost:超越Lightgbm和XGBoost的又一个boost算法神器
  6. 数据库注册两种方式的比较
  7. 关于禁止ViewPager预加载问题【转】
  8. 局域网ip扫描工具_黑客武器库之手机安全渗透工具盘点(下)
  9. HTML 制作一个通讯录
  10. bochs运行xp_bochs xp镜像下载-bochs xp镜像下载 v2.5.1精简版-下载啦
  11. oracle误删数据恢复的方法
  12. diskgenius扩容c盘重启电脑卡住_DiskGenius怎么给C盘扩容?DiskGenius无损调整C盘容量方法 (全文)...
  13. editplus java显示竖线_EditPlus对齐竖线怎么调出来?
  14. yiisoft/yii2-imagine 使用方法
  15. mysql where in_mysql where in 用法举例
  16. Largest Contentful Paint (LCP)
  17. Michael喜欢滑雪百这并不奇怪(记忆化搜索)
  18. 【Office插入eps】Word插入eps出错
  19. 启动virtualbox虚拟机显示Attempted to kill the idle task错误
  20. 天龙八部TLBB系列 - 网单用数据库修改为其他门派

热门文章

  1. 内置的lu、bslashtx、lugui函数——Matlab解线性方程组(4)
  2. 记录一次曲折的开发经历
  3. Orcad原理图打印的时候如何调整打印页码顺序
  4. three.js 播放模型中的多个动画
  5. 《卓有成效的管理者》--- 读书笔记(四)
  6. IPFS官方周报(第19期)
  7. Golang + MongoDB ReplSet副本集
  8. 干货分享:Vova跨境电商平台的问题及优势分析
  9. phpexcel生成excel并下载
  10. 商城小程序开发|二级分销裂变商城小程序怎么赚钱?