int main(int argc, const char * argv[]) {
/*
// 研究的问题: char类型的变量在内存中是如何存储的?
// char 1个字节
int num;
char charValue;
charValue = 'a'; // 计算机智能识别0和1
// a == 97 == 01100001
int size = sizeof(charValue);
printf("%i\n", size);
printf("num = %p\n", &num);
printf("char = %p\n", &charValue);
// 在C语言中, 不看怎么存, 只看怎么取
printf("%c\n", charValue);
printf("%i\n", charValue);
*/
/*************************华丽的分割线*******************************/
/*
字符6和数字6就是完全不相同的两个数
char c1 = 6; // 00000110
char c2 = '6';// 00110110
printf("%i\n", c1);
printf("%i\n", c2);
*/
/*************************华丽的分割线*******************************/
// char类型在某些情况下可以当做整型来用
// 如果对内存要求特别严格, 而且需要存储的整数不超过char类型的取值范围, 那么就可以使用char类型来代替int类型
// -2(7)~2(7)-1 == -128 ~ 127
char c = 129; // 1000 0000
printf("%i\n", c);
return 0;
}
转换大小写
char lowerCase(char temp);
int main(int argc, const char * argv[]) {
// 要求用户从键盘输入一个字母, 如果用户输入的是大写那么就转换为小写
printf("请输入一个字母\n");
char charValue;
scanf("%c", &charValue);
// 转换
// charValue = charValue + 32; // 65 + 32 = 97
printf("%c\n", lowerCase(charValue));
return 0;
}
char lowerCase(char temp)
{
// 1.判断是否是大写字母
if (temp >= 'A' && temp <= 'Z') {
// 注意: 开发中千万不要这么写, 魔鬼数字
// if (temp >= 65 && temp <= 90) {
// temp = temp + 32;
temp = temp + ('a' - 'A');
}
return temp;
}