将大小写字母互换的三种方式 C语言

小灰灰 2022-09-07 03:44 213阅读 0赞

方法一:(常规)

  1. int main() {
  2. char str[80];
  3. int i = 0;
  4. gets(str);
  5. while (str[i] != '\0') {
  6. if (str[i] >= 'a' && str[i] <= 'z')
  7. str[i] = str[i] + 'A' - 'a';
  8. else if (str[i] >= 'A' && str[i] <= 'Z')
  9. str[i] = str[i] + 'a' - 'A';
  10. i++;
  11. }
  12. printf("%s\n", str);
  13. return 0;
  14. }

方法二:(位异或)

  1. int main(){
  2. char str[80];
  3. int i = 0;
  4. gets(str);
  5. while (str[i] != '\0') {
  6. if (str[i] >= 'a' && str[i] <= 'z')
  7. str[i] = str[i] ^ 32;
  8. else if (str[i] >= 'A' && str[i] <= 'Z')
  9. str[i] = str[i] ^ 32;
  10. i++;
  11. }
  12. printf("%s", str);
  13. return 0;
  14. }

^位异或:相同为0,不同为1

转换思想:大写A(65)、小写a(97)的ASCII码相差32,大写要转换成小写就必须在65的基础上加32,只需要将二进制的第6位变号即可。同理小写也一样。

举例一:将大写A(ascii码为65)转换成小写a(ascii码为97)

  1. 01000001 --->65 --->大写A

^ 00100000 —->32

  1. 01100001 --->97 --->小写a

举例二:将小写a(ascii码为97)转换成大写A(ascii码为65)

  1. 01100001 --->97 --->小写a

^ 00100000 —->32

  1. 01000001 --->65 --->大写A

方法三:(使用转换函数)

1.字符

int tolower(char c); 将字符转换为小写

int toupper(char c) 将字符转换为大写

2.字符串 —> 需要包含头文件#include

char *strlwr(char *str); 将字符串中的字符转换为小写

char *strupr(char *str); 将字符串中的字符转换为大写

发表评论

表情:
评论列表 (有 0 条评论,213人围观)

还没有评论,来说两句吧...

相关阅读

    相关 大小写互换

    题目: 现在给出了一个只包含大小写字母的字符串,不含空格和换行,要求把其中的大写换成小写,小写换成大写,然后输出互换后的字符串。 输入: 第一行只有一个整数m(m<

    相关 字母大小写转换/c语言

    在C语言中,26个大小写字母统统用的是ASCII把字符型转换成整数型储存在计算机里。 所以只要熟知ASCII表里的字符所代表的值,就能通过运算操作把大写字母换成小写字母,把