要求是将大写字母变为小写字母c=input('请输入一个字:','s')if c>='A'&c<='Z'disp(setstr(abs(c)+abs('a')-abs('A')));endsetstr(abs(c)+abs('a')-abs('A'))这一句怎样理解? 换句话说就是,为什么由这个程序得到小写字母???
小写字母的ascii值比相应的大写字母大32,换言之任何大写字母加上32就是对应的小写字母了。有的时候我们记不住这个差值,就直接计算两个对应字母的差,不论是'a'-'A'还是'z'-'Z'都是32。没有必要加abs,ascii码都是大于0的,setstr函数也已经被char取代。因此disp(setstr(abs(c)+abs('a')-abs('A')));这句话写成disp(char(c+'a'-'A'))或者disp(char(c+32))更方便与直接了当。另外matlab提供了lower函数可以直接将字母自动转为小写,因此直接用disp(lower(c))即可。 还有,如果你想查看某个字符的ascii码,直接输入double即可。比如double('A'),你可以用这种方法看看'A'和'a'是不是相差32。 |
|