转换成小写字母

709转换成小写字母——2020.12.08

题目

实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。

示例 1:

输入: “Hello”
输出: “hello”
示例 2:

输入: “here”
输出: “here”
示例 3:

输入: “LOVELY”
输出: “lovely”

思路解法

根据ASCII表进行转换
在这里插入图片描述
大写字母与小写字母之间差值为32
于是
class Solution {
public:
string toLowerCase(string str) {
for(int i=0;i<str.size();i++){
if(‘A’<=str[i] && str[i]<=‘Z’){
str[i] += 32;
}
}
return str;
}
};

**

位运算

**
根据评论区@Alfeim的总结:
大写变小写、小写变大写 : 字符 ^= 32;
大写变小写、小写变小写 : 字符 |= 32;
小写变大写、大写变大写 : 字符 &= -33;
class Solution {
public:
string toLowerCase(string str) {
for(int i=0;i<str.size();i++){
for(char &ch:str){
ch |= 32;
}
}
return str;
}
};

注意:对于增强型for循环,for(char &ch:str)由于取出了str中每一位的地址,因此直接对原数组进行改变操作;若是for(char ch:str),则原数组不发生变化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值