题目描述:
将一个字符由小写字母转换为大写字母
样例
a -> A
b -> B
代码实现1:
class Solution {
public:
/**
* @param character: a character
* @return: a character
*/
char lowercaseToUppercase(char character) {
// write your code here
int number,number1;
number = (int)character;
number1 = number-32;
char number2=number1;
return number2;
}
};
解题思路代码分析:
大小写字母对应的ASCII码:
大写:
A → 65,B → 66,C → 67,D → 68,E → 69,F → 70,G → 71,H → 72,I → 73,J → 74,K → 75,L → 76,
M → 77,N → 78,O → 79,P → 80,Q → 81,R → 82,S → 83,T → 84,U → 85,V → 86,W → 87,X → 88,
Y → 89,Z → 90
小写:
a → 97,b → 98,c → 99,d → 100,e → 101,f → 102,g → 103,h → 104,i → 105,j → 106,k → 107,l → 108,
m → 109,n → 110,o → 111,p→ 112,q → 113,r → 114,s → 115,t → 116,u → 117,v → 118,w → 119,
x → 120,y → 121,z → 122
故可知大写字母对应的ASCII码加32就是小写字母的ASCII,小写字母对应的ASCII码减32就是大写字母的ASCII 。
- 字母强制转换成ASCII码
int number,number1;
number = (int)character; //将字母强制转换成ASCII码
- 将ASCII码转化成字母
char number2=number1;
简便方法:
使用C++自带的库函数实现很简单:
cctype.h文件中定义了大小写字母相互转换的函数: toupper:小写字母----->大写字母
tolower:大写字母------>小写字母
故只需要输入:
//小写字母转换成大写字母
return toupper(character);
//大写字母转换成小写字母
return tolower(character);
在VS2013中测试也可验证: