C++⼤⼩写转换tolowertoupper以及transform函数
英⽂字母⼤⼩写之间的转换,可以⽤⼩写字母减32,⼤写字母加32的⽅式实现。
如果不知道被转的字母是⼩写还是⼤写,就不⽅便进⾏操作。⽐如给⼀个不确定⼤⼩写的字母,要转换为⼩写,到底是⼤写+32呢,还是本来就是⼩写不变,不好确定!
所以可以使⽤tolower/toupper函数!
函数介绍
tolower
to lower,转换为⼩写字母
toupper
to upper,转换为⼤写字母
通常要导⼊库:ctype.h(C++中是cctype),在下⾯例⼦中,没有导⼊该库,但是也可以运⾏。
在C++中使⽤
将字符串 “abcDEF” 分别转换为⼤⼩写。
#include<iostream>
using namespace std;
int main(int argc,char** argv){
string str="abcDEF";
for(int i=0;i<str.length();i++){
str[i]=tolower(str[i]);
}
cout<<str<<endl;//abcdef
for(int i=0;i<str.length();i++){
str[i]=toupper(str[i]);
}
cout<<str<<endl;//ABCDEF
return0;
}
transform英文以上只能利⽤两个函数⼀个⼀个字符转换,⽽transform函数可以⼀次性将字符串转换。
transform函数有两个重载版本:
transform(first,last,result,op);
//first是容器的⾸迭代器,last为容器的末迭代器,result为存放结果的容器,op为要进⾏操作的⼀元函数对象或sturct、class。
transform(first1,last1,first2,result,binary_op);
//first1是第⼀个容器的⾸迭代器,last1为第⼀个容器的末迭代器,first2为第⼆个容器的⾸迭代器,result为存放结果的容
器,binary_op为要进⾏操作的⼆元函数对象或sturct、class。
transform函数配合tolower/toupper的⽤法实例:
#include<bits/stdc++.h>
using namespace std;
int main(int argc,char** argv){
string s="HELLO";
transform(s.begin(),s.end(),s.begin(),::tolower);
cout<<s<<endl;//输出hello
string s2="hello";
transform(s2.begin(),s2.end(),s2.begin(),::toupper); cout<<s2;//输出HELLO
return0;
}
tolower/toupper在C中的使⽤
将字符数组 str 分别转换为⼤⼩写
#include<stdio.h>
#include<stdlib.h>
int main(int argc,char*argv[]){
char str[6]={'a','b','c','D','E','F'};
int i;
for(i=0;i<6;i++){
str[i]=tolower(str[i]);
printf("%c",str[i]);//abcdef
}
printf("\n");
for(i=0;i<6;i++){
str[i]=toupper(str[i]);
printf("%c",str[i]);//ABCDEF
}
return0;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论