以下代码运行后出现乱码,if语句中的条件表达式和if执行语句中的逻辑表达式一定要同类型吗?求指导
#include <stdio.h>
int main()
{
int ch;
printf("请输入一行英文句子:");
while ((ch = getchar()) != '\n')
{
if (ch >= 'A' && ch <= 'Z')
{
ch = ch + 32;
}
else if (ch >= 'a' && ch <= 'z')
{
ch = ch - 32;
}
putchar(ch);
}
return 0;
}
运行结果:
若改为以下代码
#include <stdio.h>
int main()
{
int ch;
printf("请输入一行英文句子:");
while ((ch = getchar()) != '\n')
{
if (ch >= 'A' && ch <= 'Z')
{
ch = ch - 'A' + 'a';
}
else if (ch >= 'a' && ch <= 'z')
{
ch = ch - 'a' + 'A';
}
putchar(ch);
}
putchar('\n');
return 0;
}
#include <stdio.h>
int main()
{
int ch;
printf("请输入一行英文句子:");
while ((ch = getchar()) != '\n')
{
if (ch >= 97 && ch <= 122)
{
ch = ch - 32;
}
else if (ch >= 65 && ch <= 90)
{
ch = ch + 32;
}
putchar(ch);
}
return 0;
}
结果都如下:
第一个图的代码乱码的原因在哪里?最后的putchar('\n');代表什么