不理解把字母大小写对调这段!求告知
#include <stdio.h>void main()
{
int i;
char ch;
printf("请输入一个字符:\n");
ch=getchar();
fflush(stdin);
while(!(ch>='A'&&ch<='z')||(ch>'Z'&&ch<'a'))
{
printf("输入错误,请重新输入一个字符:\n");
ch=getchar();
fflush(stdin);
}
if(ch&32)
{
ch=ch&223; //使第五位为0,变大写
}
else
{
ch=ch|255; //使第五位为1,变小写
}
putchar(ch);
ch=getchar();
putchar(ch);
}
//假如输入字符'A'就执行1000001|11111111进行或运算得11111111这是小写字母'a'吗?求解释小白不理解
这个代码是错误的呀
我更喜欢这种方法
#include <stdio.h>
int main(void)
{
char ch;
printf("请输入一个字符: ");
ch = getchar();
if(('A' <= ch) && (ch <= 'Z'))
{
ch = ch - 'A' + 'a';
}
else
{
ch = ch - 'a' + 'A';
}
putchar(ch);
putchar('\n');
return 0;
}
人造人 发表于 2018-5-31 20:12
这个代码是错误的呀
我抄的小甲鱼老师的应该没错啊!但我搞不懂大小字母对调这块
假如输入字符'B'就执行1000010|11111111进行或运算得11111111这是小写字母'b'能给我解释下这个吗?
ch=ch|255; //使第五位为1,变小写 解释下这段代码怎么理解 人造人 发表于 2018-5-31 20:24
我更喜欢这种方法
谢谢大神,这个确实更简便易懂,只是我不懂老师那个代码怎么实现大小转换的,所以我想请教下 人造人 发表于 2018-5-31 20:12
这个代码是错误的呀
感谢,我知道了。把那个255改为32这个程序就成功了。thankyou,有你们鱼吧才有活力
页:
[1]