赞
踩
方法一:(常规)
- int main() {
- char str[80];
- int i = 0;
-
- gets(str);
- while (str[i] != '\0') {
- if (str[i] >= 'a' && str[i] <= 'z')
- str[i] = str[i] + 'A' - 'a';
- else if (str[i] >= 'A' && str[i] <= 'Z')
- str[i] = str[i] + 'a' - 'A';
- i++;
- }
- printf("%s\n", str);
- return 0;
- }
方法二:(位异或)
- int main(){
- char str[80];
- int i = 0;
- gets(str);
- while (str[i] != '\0') {
- if (str[i] >= 'a' && str[i] <= 'z')
- str[i] = str[i] ^ 32;
- else if (str[i] >= 'A' && str[i] <= 'Z')
- str[i] = str[i] ^ 32;
- i++;
- }
- printf("%s", str);
- return 0;
- }
^位异或:相同为0,不同为1
转换思想:大写A(65)、小写a(97)的ASCII码相差32,大写要转换成小写就必须在65的基础上加32,只需要将二进制的第6位变号即可。同理小写也一样。
举例一:将大写A(ascii码为65)转换成小写a(ascii码为97)
01000001 --->65 --->大写A
^ 00100000 --->32
01100001 --->97 --->小写a
举例二:将小写a(ascii码为97)转换成大写A(ascii码为65)
01100001 --->97 --->小写a
^ 00100000 --->32
01000001 --->65 --->大写A
方法三:(使用转换函数)
1.字符
int tolower(char c); 将字符转换为小写
int toupper(char c) 将字符转换为大写
2.字符串 --> 需要包含头文件#include <string.h>
char *strlwr(char *str); 将字符串中的字符转换为小写
char *strupr(char *str); 将字符串中的字符转换为大写
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。