易百教程

将大写字母转换为小写字母

char值可以表示为整数或单引号之间的字符,例如:'A'
有符号类型为char时,其值范围是:-128+127
char是无符号类型时,其值范围是:0255

可以比较char类型的值:

'Z' >= 'A'      'Q' <= 'P'      'B' <= 'b'      'B' != 66

小写字母的ASCII代码比它们的大写字母大32。以下示例将任何输入的大写字母转换为小写:

#include <stdio.h>

int main(void)
{
      char letter = 0;    // 存储一个字符

      printf("Enter an uppercase letter:");     // 提示输入信息
      scanf("%c", &letter);                     // 读取输入的字符

      // 判断是否为大写字母
      if(letter >= 'A'){  // 是否等于或者大于 A 
            if(letter <= 'Z')                       // 是否小于 Z
            {                                       // 是大写字母
              letter = letter - 'A' + 'a';          // 将大写转换为小写
              printf("您输入了一个大写字母:%c\n", letter);
            }else{
                letter = letter - 32;
                printf("您输入的字母转大写为:%c\n", letter);
            }
      }else{// 输入的不是大写字母
          printf("尝试使用shift键,将输入大写字母.\n");
      }
      return 0;
}

编译并执行上面示例代码,得到以下结果:

hema@ubuntu:~/book$ gcc main.c
hema@ubuntu:~/book$ ./a.out
Enter an uppercase letter:h
您输入的字母转大写为:H

如果输入大写字母,则字母中的字符必须在'A''Z'之间,因此下一个if检查字符是否大于或等于'A':

if(letter >= 'A'){  // 是否等于或者大于 A

如果表达式为true,则继续使用嵌套if语句,if语句测试字母是否小于或等于'Z':
如果此表达式为true,则将字符转换为小写,并通过执行if后面的语句块输出消息:

if(letter <= 'Z')                       // 是否小于 Z
{                                       // 是大写字母
     letter = letter - 'A' + 'a';       // 将大写转换为小写
     printf("您输入了一个大写字母:%c\n", letter);
}