【小韦同学@题解-将字符串中的小写字母转换成大写字母】
题目:
描述
给定一个字符串,将其中所有的小写字母转换成大写字母。
输入
输入一行,包含一个字符串(长度不超过100,可能包含空格)。
输出
输出转换后的字符串。
输入样例1
helloworld123Ha
输出样例1
HELLOWORLD123HA
来源
http://shenben.club/problem?id=118
题解:
思路:
枚举每个字符串判断其是否为小写字母,若为小写字母,则该字符减去(‘a’ - ‘A’)即可。
注:
1° 字符串可能有空格,故用getline输入,而不是cin,格式:getline(cin, 字符串名称),
2° 用(‘a’ - ‘A’)的原因是:小写字母和大写字母在计算中用ASCII码表示(ASCII码对照表),小写字母的ASCII码值都比大写字母的ASCII码值大,而它们相差(‘a’ - ‘A’)故减去(‘a’ - ‘A’)。
3° 若是大写字母转成小写字母,则加上(‘a’ - ‘A’)。
/**********************************************
* 题目:将字符串中的小写字母转换成大写字母
* 描述:输入一串字符串,将其中的小写字母都转成大写字母,
字符串中可能有空格。
* 作者:小韦同学
* 邮箱:weichangying_wcy@163.com
**********************************************/
#include <string>
#include <iostream>
using namespace std;
int main() {
string str;
getline(cin, str);
for (int i = 0; i < str.size(); i++) {
if ('a' <= str[i] && str[i] <= 'z') { // 判断是否为小写字母
str[i] = str[i] - ('a' - 'A'); // 转成大写字母
}
cout << str[i];
}
return 0;
}
我是小韦同学,企者不立,跨者不行,每天进步一点点。
欢迎大家多多交流,如果发现有错误,请多指正。有疑问的同学也可以留言评论或者发邮件。邮箱:weichangying_wcy@163.com