字符串⼤⼩写转换和字符串的⽐较
字符串⼤⼩写相互转换
【1】ASCll码关系:’A’-‘Z’ 是65~90,’a’-‘z’是97-122,对应⼤⼩写字母ASCll值相差32。在加个循环条件即可转换。
单个字符 c :
⼤写变⼩写:c + 32 ;
⼩写变⼤写:c - 32 ;
char str[10] = "ABcd"
// 全部转为⼩写
for(int i=0; i<str.size(); i++)
{
if(str[i] >= 'a' && str[i] <= 'z')
str[i] = str[i] - 32; // ⼩写变⼤写
// else if(str[i] >= 'A' && str[i] <= 'Z')
// str[i] = str[i] + 32; // ⼤写变⼩写
}
for(int i=0; i<str.size(); i++)
{
cout<<str[i];
}
【2】c++中transform()函数。
该函数的使⽤需要引⽤头⽂件<algorithm>
string s1="AAAbbb";
transform(s1.begin(),s1.end(),s1.begin(),toupper);
cout<<"全部转化为⼤写:"<<s1<<endl;
transform(s1.begin(),s1.end(),s1.begin(),tolower);
cout<<"全部转化为⼩写:"<<s1<<endl;
字符串的⼤⼩⽐较
字符串⽐较:是指从左往右对单个字符或字符串进⾏⽐较⼤⼩的操作,⼀般都是以ASCII码值的⼤⼩作为字符⽐较的标准。
【⽐较⽅法】
c语⾔strcmp(a, b)函数,⽐较两个字符串的⼤⼩,a < b 返回-1,a == b 返回0,a > b返回1。这⾥的⽐较⽅式是字典序!
c++ string类定义的字符串可以直接进⾏⽐较
【注意事项】
两个不同长度的字符串进⾏⽐较时,不是长的字符串就⼀定⼤。如字符串s1为ABCE,字符串s2为ABCDEF。对 s1 与 s2 进⾏⽐较时,s1 的第4个字符是E,s2 的第4个字符是D,⽽D < E,所以s1 > s2。尽管 s2 ⽐s1长。
strcmp可以比较单个字符吗当字符串有空格时,空格也参加⽐较。如s1为 b ook(表⽰空格),s2 为book,显⽰-79,故s1 < s2
⼤写字母和⼩写字母的ASCII代码值是有区别的,所以,yes > YEs
当字符串全部⽤英⽂字母的⼤写(或⼩写)组成时,字符串的⼤⼩顺序和它们在字典中的顺序相同,本质还是ASCll码的⼤⼩⽐较
由汉字组成的字符串可以参加⽐较。如李红 < 王军。它们的⼤⼩实际是由其拼⾳构成的字符串的⼤⼩来决定的。上例即:LIHONG < WANGJUN 回车,ASCII码13 换⾏,ASCII码10 空格,ASCII码32
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论