范围for循环中修改元素一定要用&

2020-01-02  本文已影响0人  DinDin1995

一个简单的注意点,共勉:

将字符串中的大写字母改成小写(范围for循环,做不到):

void changeToLower(string &s){
    for (auto i : s){
        if (i >= 'A'&&i <= 'Z'){
            i += 32;
        }
    }
}

将字符串中的大写字母改成小写(范围for循环,做得到):
与上例唯一的区别在于auto i : s 前的&(auto &i : s)

void changeToLower(string &s){
    for (auto &i : s){
        if (i >= 'A'&&i <= 'Z'){
            i += 32;
        }
    }
}

将字符串中的大写字母改成小写(普通for循环,做得到):

void changeBig(string &s){
    for (int i = 0; i < s.size();++i){
        if (s[i] >= 'A'&&s[i] <= 'Z'){
            s[i] += 32;
        }
    }
}
上一篇下一篇

猜你喜欢

热点阅读