C++知识碎片整理(2)——字符串大小写转换
2016/8/16
/*
字符串大小写转换
std::string方法
核心是transform()方法
需要引入头文件algorithm
*/
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main(){
string str1 = "abc";
string str2 = "DEFG";
cout << str1 << endl;
cout << str2<< endl;
transform(str1.begin(), str1.end(), str1.begin(), toupper);
transform(str2.begin(), str2.end(), str2.begin(), tolower);
cout << str1 << endl;
cout << str2 << endl;
transform(str1.begin(), str1.end(), str2.begin(), tolower);
cout << str2 << endl;
getchar();
}
transform()是拥有多种重载方式的函数,由上例可见他可以将一个迭代器中元素按某种规则复制到另一个迭代器中,tolower和toupper都是规则的标记。
2017/2/3
批注:这里我只记录了一种大小写转换的实现方法,通过algorithm包的transform()方法实现,无需多言,C++的强大函数库自然有多种方法实现这个微不足道的功能,这个也不一定是最佳方法,但本质上应该都是字符转换ASCII码的处理。
补充Java中大小写的转换:
package com.way.algorithm;
public class CaseExchange {
public static void main(String[] args) {
String str1="ABcd";
String str2=str1.toLowerCase();
String str3=str1.toUpperCase();
System.out.println(str2);
System.out.println(str3);
}
}
输出
abcd
ABCD