|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
int main()
{
char i, j;
j = 'a' - 'A';
scanf("%c", &i);
if ('i' <= 'z' && 'i' >= 'a')
{
i = i - j;
}
else if ('i' >= 'A' && 'i' <= 'Z')
{
i = i + j;
}
printf("%c", i);
return 0;
}
小写能正常转换但是输入大写就不行,不懂什么原因
还有代码有什么赘余或者不规范的地方也希望能被大佬指出
谢谢大佬!
你好!你的代码中有一些小问题,我已经帮你修复了。主要问题在于 if 语句中的条件判断,你应该使用变量 i 而不是字符 'i'。请查看下面修复后的代码:
#include <stdio.h>
int main()
{
char i, j;
j = 'a' - 'A';
scanf("%c", &i);
if (i <= 'z' && i >= 'a')
{
i = i - j;
}
else if (i >= 'A' && i <= 'Z')
{
i = i + j;
}
printf("%c", i);
return 0;
}
关于代码风格和规范,以下是一些建议:
1. 可以使用更具描述性的变量名,例如 input_char 和 case_offset ,这样可以提高代码的可读性。
2. 使用 const 关键字定义一个常量用于存储大小写字符之间的偏移量。
修复后的代码:
#include <stdio.h>
int main()
{
char input_char;
const char case_offset = 'a' - 'A';
scanf("%c", &input_char);
if (input_char <= 'z' && input_char >= 'a')
{
input_char = input_char - case_offset;
}
else if (input_char >= 'A' && input_char <= 'Z')
{
input_char = input_char + case_offset;
}
printf("%c", input_char);
return 0;
}
这样代码会更易于阅读和维护。希望对你有所帮助!
|
|