鱼C论坛

 找回密码
 立即注册
查看: 1044|回复: 2

[已解决]新手新手,字母大小写转换

[复制链接]
发表于 2023-5-6 23:45:25 | 显示全部楼层 |阅读模式

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

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

x
#include<stdio.h>

int main()
{
        char a;
        
        printf("请输入一个字母:");
        scanf("%c", &a);
        
        if (a >= 65 && a <= 90)
        {
                printf("其小写字母为:%c", a + 32); 
        } 
        else if(a >= 97 && a <= 122)
        {
                printf("其大写字母为:%c", a - 32);
        }
        return 0;
 } 




#include <stdio.h>

int main()
{
        char ch;

        printf("请输入一个字符:");
        scanf("%c", &ch);

        if (ch >= 'A' && ch <= 'Z')
        {
                ch = ch + 32; // ch加32,变成小写,然后赋值回ch
        }
        else if (ch >= 'a' && ch <= 'z')
        {
                ch = ch - 32; // 同上
        }

        printf("%c\n", ch);

        return 0;
}

下面是范例,上面的那个也可以正常运行,这俩有啥区别吗
最佳答案
2023-5-7 11:01:43
这两段代码的功能相同,实现了将输入的字母进行大写和小写之间的转换。

主要区别在于第一个代码段使用ascii码值来进行字符大小写的判断和转换,而第二个代码段则直接使用字符自身的显式编码形式(`'a', 'z', 'a', 'z'`)来进行判断与计算。

另外,第一个代码段还可以通过头文件引入c99标准提供的数据类型:`<stdint.h>`中的int8_t或uint8_t数据类型代替char类型,实现更精准的数据类型定义。
有用请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-6 23:47:32 | 显示全部楼层
两个程序的功能都是输入一个字母,然后将大写字母转换成小写,小写字母转换成大写,并输出结果。两者之间的区别主要在于输出的格式和程序的可读性。

第一个程序:
1. 输出的格式会指明输出的字母是大写还是小写,例如:“其小写字母为:b”。
2. 在判断字母大小写时,用的是ASCII码,例如 a>=65 && a<=90 。

第二个程序:
1. 输出的格式直接显示转换后的字母,没有其他附加说明,例如:“b”。
2. 在判断字母大小写时,用的是字符比较,例如 ch >= 'A' && ch <= 'Z' ,这样更加直观,也提高了代码可读性。

总结:虽然两个程序功能一致,但第二个程序在可读性和输出格式上更为简洁。此外,第二个程序使用字符比较而非ASCII码值比较,更易于理解。在实际编程过程中,我们应该尽量提高代码的可读性和简洁性。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-7 11:01:43 | 显示全部楼层    本楼为最佳答案   
这两段代码的功能相同,实现了将输入的字母进行大写和小写之间的转换。

主要区别在于第一个代码段使用ascii码值来进行字符大小写的判断和转换,而第二个代码段则直接使用字符自身的显式编码形式(`'a', 'z', 'a', 'z'`)来进行判断与计算。

另外,第一个代码段还可以通过头文件引入c99标准提供的数据类型:`<stdint.h>`中的int8_t或uint8_t数据类型代替char类型,实现更精准的数据类型定义。
有用请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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