问题描述

编写一程序,当输入小写字母时程序能自动转换为大写字母;当输入大写字母时能自动转换为小写字母;当输入非字母时不进行任何转换;当输入“#”时程序结束

分析

C语言利用ascii码转换,首先判断输入字母的类型,然后进行相应操作,分支结构
python利用字符串的大小写方法可以直接进行转换

源程序

C语言

第一版程序已实现基本功能,但缺点是只能对单个字符进行处理。

  1. #include<stdio.h>
  2. int main()
  3. {
  4. char c; //存储待转换的字符
  5. while(1)
  6. {
  7. printf("请输入一个字符:\n");
  8. scanf("%c",&c); //获取输入的字符
  9. getchar(); //防止回车符被接收到影响程序执行效果
  10. if(c>='a' && c<='z')
  11. {
  12. printf("转化后的字符为%c\n",c-32); //小写转大写
  13. }
  14. else if(c>='A' && c<='Z')
  15. {
  16. printf("转化后的字符为%c\n",c+32); //大写转小写
  17. }
  18. else if(c=='#')
  19. {
  20. printf("退出程序"); //跳出循环结束程序
  21. break;
  22. }
  23. else
  24. {
  25. printf("转化后的字符为%c\n",c); //不进行变换
  26. }
  27. }
  28. return 0;
  29. }

改进后,可以对字符串进行转换:

#include<stdio.h>
int main()
{
    int i;
    char c[10],d[10];  //存储待转换的字符串 
    while(1)
    {
        printf("请输入字符串:\n");
        gets(c);  //获取输入的字符
        //getchar();       //防止回车符被接收到影响程序执行效果
        for(i=0;i<=10;i++)
        {
            if(c[i]>='a' && c[i]<='z')
            {
                d[i]=c[i]-32;  //小写转大写
            }
            else if(c[i]>='A' && c[i]<='Z')
            {
                d[i]=c[i]+32;  //大写转小写 
            }
            else
            {
                d[i]=c[i];
            }
        }
        //puts(d);     //作用和下一行一样,输出字符串
        printf("%s\n",d);
    }
    return 0;
}

python

python字符串的大小写有对应的函数,比C语言处理起来更简单直接。而且由于python不区分字符与字符串,这一个程序即可同时完成对字符和字符串的转换工作。

#coding:gbk
while True:
    c = input("请输入字符串:")
    print(c.upper())

拓展:ASCII码

美国信息互换标准代码,ASCⅡ)是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统至今为止共定义了128个字符,其中33个字符无法显示,95个可显示字符。

https://tool.oschina.net/commons?type=4

A-Z:65-90
a-z:97-122