HDU 1161 Eddy's mistakes(大小写转换)

来源:互联网 发布:ubuntu wine office 编辑:程序博客网 时间:2024/04/30 03:04

题意:将输入的字符串中的所有大写字母转换为小写字母。

思路:由于大写字母比其对应的小写字母的ASCII码小32,所以可以将所有大写字母的阿斯克码加上32,32=00100000=0x20 通过每一位和0x20或运算可以得到对应小写字母

同理如果为要将小写字母转化为大写字母,可以将所有小写字母和11011111=0xDF进行与运算

AC代码:

#include <cstdio>#include <cstring>using namespace std;void to_lower(char* str, int len){    for(int i = 0; i < len; i++)    {        if(str[i] >= 'A' && str[i] <= 'Z')        {            str[i] |= 0x20;        }    }}int main(){    char str[1001];    while(gets(str))    {        int len = strlen(str);        to_lower(str, len);        puts(str);    }    return 0;}
0 0
原创粉丝点击