鱼C论坛

 找回密码
 立即注册
查看: 1163|回复: 3

[已解决]输入字母输出对应大/小写

[复制链接]
发表于 2023-5-5 22:34:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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;
}

小写能正常转换但是输入大写就不行,不懂什么原因
还有代码有什么赘余或者不规范的地方也希望能被大佬指出
谢谢大佬!
最佳答案
2023-5-5 22:36:13
你好!你的代码中有一些小问题,我已经帮你修复了。主要问题在于 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;
}

这样代码会更易于阅读和维护。希望对你有所帮助!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-5 22:36:13 | 显示全部楼层    本楼为最佳答案   
你好!你的代码中有一些小问题,我已经帮你修复了。主要问题在于 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;
}

这样代码会更易于阅读和维护。希望对你有所帮助!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-5 22:46:25 | 显示全部楼层
《'i'》
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-6 09:09:27 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-18 03:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表