2021-03-07

大写字母转换成小写字母

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

示例:

示例 1:
输入: “Hello”
输出: “hello”
示例 2:
输入: “here”
输出: “here”
示例 3:
输入: “LOVELY”
输出: “lovely”

解题思路

1. 通过ASCII码表操作字符串。

A-Z;65-90
a-z:97-122
A-a:A+32=a

下面展示一下 代码

// for(auto& s:str)//大小写转换
{
s|=32;
}
// class Solution {
public:
  string toLowerCase(string str)
   {
    int change_num='a'-'A';       
     string res="";     
     for(auto s:str)   
       {  
 if(s>='A'&&s<='Z') res+=(s+change_num);  
    else res+=s;  
       }  
         return res;
    for(auto& s:str) 
            s|=32;       
        return str;   
      }
 };

转自:https://leetcode-cn.com/problems/to-lower-case/solution/cwei-yun-suan-he-chang-gui-fang-fa-by-zsx3/

力扣

在这里插入图片描述

2.位运算

大写变小写、小写变大写 : 字符 ^= 32;
大写变小写、小写变小写 : 字符 |= 32;
小写变大写、大写变大写 : 字符 &= -33;

下面展示一下 代码

//   for(int i = 0; i < size;i+=1)
{    
 if(str[i] <= 'Z' && str[i] >= 'A')
 {               
  str[i] = str[i] + 32;     
         }  
               }
// class Solution {
public:  
  string toLowerCase(string str)
   {
    int size = str.size();
     if(size==0)
     {    
      return 0;
              }//判断字符串是否为空,为空返回0;
 for(int i = 0; i < size;i+=1)
     {           
   if(str[i] <= 'Z' && str[i] >= 'A')
         {    
               str[i] = str[i] + 32;//完成大小写转换      
         }      
      } 
   return str;  
  }
};

运行结果

2021-03-07_第1张图片

2021-03-07_第2张图片

2021-03-07_第3张图片
力扣
2021-03-07_第4张图片

2021-03-07_第5张图片

欢迎大家前来评论,共同进步!!!

你可能感兴趣的:(c++,leetcode,字符串)