第一次尝试
实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。LeetCode链接
- 方法:创建地图进行比较,其实我们可以不创建地图来进行,直接使用 ascll 码表的值来进行,如果字符在大写字符范围内,那么就将其变成对应的小写,也就是加上 32,但是这样做有一个风险,那就是如果某天 ascll 码表变化了,那该怎么办呢(当然这个问题很难发生,但是不排除可能性)?
- 因此,像这种代码,我们可以自己制作一个简单的地图,来存放需要比较的信息,这样我们就可以长久的使用该代码来执行此功能,不用担心有什么变数;
char* toLowerCase(char* str){
//地图代码,用来存放待比较信息
char* map1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char* map2 = "abcdefghijklmnopqrstuvwxyz";
//设置临时变量,用来保存入口地址
char* s = str;
//循环比较,直到字符串结束
while(*s){
for(int i =0; i < 26; i++){
//如果某个字符是 map1 中的,那么就是大写,我们将其替换为 map2 中对应位置的小写
if(map1[i] == *s){
*s = map2[i];
break;
}
}
s++;
}
return str;
}