c++编程——大写字母转换

  1. 任务描述

    本关任务:将一个字符串中的所有小写字母变成对应的大写字母,其它字母不变。

    例如:对字符串“abc12! ef”执行函数后输出结果为“ABC12! EF”。

  2. 相关知识

    完成本关需要具备的知识介绍请参见第一、二关卡。

  3. 编程要求

    在右侧编辑器中的Begin-End之间补充代码,实现将字符串(数据由平台提供,且已在主函数中获取)中的所有小写字母变成对应大写字母,其它字母不变的功能。

  4. 提示

    在 ASCII 码表中,大写字母‘A’到‘Z’是连续编码的,小写字母‘a’到‘z’也是连续编码的。也就是说‘A’和‘a’的 ASCII 码的差与‘Z’和‘z’的 ASCII 码的差是一样的。

    所以如果字符变量 ch 中存放的是小写字母,则下面的语句可以将其变成对应的大写字母:

    ch = ch + ‘A’-‘a’;

  5. 测试说明

    平台会对你编写的代码进行测试,比对你输出的数值与实际正确数值,只有所有数据全部计算正确才能通过测试:

    测试输入:1q2w3ASD45sx~1
    预期输出:1Q2W3ASD45SX~1

    测试输入:as 12xfASA90[]kl{}
    预期输出:AS 12XFASA90[]KL{}

  6. 代码

    #include 
    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++,开发语言)