bailetayiyan 发表于 2023-5-6 23:45:25

新手新手,字母大小写转换

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

下面是范例,上面的那个也可以正常运行,这俩有啥区别吗

isdkz 发表于 2023-5-6 23:47:32

两个程序的功能都是输入一个字母,然后将大写字母转换成小写,小写字母转换成大写,并输出结果。两者之间的区别主要在于输出的格式和程序的可读性。

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

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

总结:虽然两个程序功能一致,但第二个程序在可读性和输出格式上更为简洁。此外,第二个程序使用字符比较而非ASCII码值比较,更易于理解。在实际编程过程中,我们应该尽量提高代码的可读性和简洁性。

sfqxx 发表于 2023-5-7 11:01:43

这两段代码的功能相同,实现了将输入的字母进行大写和小写之间的转换。

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

另外,第一个代码段还可以通过头文件引入c99标准提供的数据类型:`<stdint.h>`中的int8_t或uint8_t数据类型代替char类型,实现更精准的数据类型定义。
有用请设置最佳答案
页: [1]
查看完整版本: 新手新手,字母大小写转换