-
任务描述
本关任务:将一个字符串中的所有小写字母变成对应的大写字母,其它字母不变。
例如:对字符串“abc12! ef”执行函数后输出结果为“ABC12! EF”。
-
相关知识
完成本关需要具备的知识介绍请参见第一、二关卡。
-
编程要求
在右侧编辑器中的Begin-End之间补充代码,实现将字符串(数据由平台提供,且已在主函数中获取)中的所有小写字母变成对应大写字母,其它字母不变的功能。
-
提示
在 ASCII 码表中,大写字母‘A’到‘Z’是连续编码的,小写字母‘a’到‘z’也是连续编码的。也就是说‘A’和‘a’的 ASCII 码的差与‘Z’和‘z’的 ASCII 码的差是一样的。
所以如果字符变量 ch 中存放的是小写字母,则下面的语句可以将其变成对应的大写字母:
ch = ch + ‘A’-‘a’;
-
测试说明
平台会对你编写的代码进行测试,比对你输出的数值与实际正确数值,只有所有数据全部计算正确才能通过测试:
测试输入:1q2w3ASD45sx~1
预期输出:1Q2W3ASD45SX~1测试输入:as 12xfASA90[]kl{}
预期输出:AS 12XFASA90[]KL{} -
代码
#include <iostream> using namespace std; void toUp(char * str); int main() { char s[1024]; cin.getline(s, 1024); // 输入一行字符 toUp(s); // 调用toUp函数,转换成大写字母 cout << s << endl; // 输出变更后的新字符串 return 0; } // 函数toUp:将str指向的字符串中的小写字母变成对应的大写字母 // 参数:str-指向字符串 void toUp(char * str) { // 请在此添加代码,实现函数toUp /********** Begin *********/ char * r = str,* p = str; while (*p) { if (*p >= 'a' && *p <= 'z') { *r = (*p - 32); } else *r = *p; r++,p++; } /********** End **********/ }
c++编程——大写字母转换
最新推荐文章于 2024-09-01 06:30:00 发布