问题描述
编写一程序,当输入小写字母时程序能自动转换为大写字母;当输入大写字母时能自动转换为小写字母;当输入非字母时不进行任何转换;当输入“#”时程序结束
分析
C语言利用ascii码转换,首先判断输入字母的类型,然后进行相应操作,分支结构
python利用字符串的大小写方法可以直接进行转换
源程序
C语言
第一版程序已实现基本功能,但缺点是只能对单个字符进行处理。
#include<stdio.h>
int main()
{
char c; //存储待转换的字符
while(1)
{
printf("请输入一个字符:\n");
scanf("%c",&c); //获取输入的字符
getchar(); //防止回车符被接收到影响程序执行效果
if(c>='a' && c<='z')
{
printf("转化后的字符为%c\n",c-32); //小写转大写
}
else if(c>='A' && c<='Z')
{
printf("转化后的字符为%c\n",c+32); //大写转小写
}
else if(c=='#')
{
printf("退出程序"); //跳出循环结束程序
break;
}
else
{
printf("转化后的字符为%c\n",c); //不进行变换
}
}
return 0;
}
改进后,可以对字符串进行转换:
#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个可显示字符。
A-Z:65-90
a-z:97-122