1 条题解

  • 1
    @ 2025-5-17 21:57:32

    水题

    要解决这个问题,我们需要将给定句子中的每个字母进行大小写转换,即大写字母转换为小写字母,小写字母转换为大写字母,而其他字符(如空格、标点符号等)保持不变。以下是解决这个问题的步骤:

    方法思路 遍历每个字符:我们需要逐个检查句子中的每个字符。

    检查字符类型:对于每个字符,判断它是否是大写字母或小写字母。

    转换大小写:如果是大写字母,就将其转换为小写字母;如果是小写字母,就将其转换为大写字母。

    处理非字母字符:其他字符直接保留原样。

    输出结果:将所有处理后的字符组合成新的字符串并输出。

    解决代码

    #include <iostream>
    #include <string>
    using namespace std; 
    int main() {
       	string a;
       	getline(cin,a);
       	for(int i=0;i<a.size();i++){
       		if(a[i]>='a'&&a[i]<='z'){
       			a[i]=a[i]-'a'+'A';
    		}else{
       			if(a[i]>='A'&&a[i]<='Z')a[i]=a[i]-'A'+'a';
    		}
       		if(a[i]=='.'){
    			cout<<a[i];
    			return 0;
    		}
       		cout<<a[i];
    	}
        return 0;
    }
    
    
    

    代码解释 读取输入:使用 getline(cin, sentence) 读取整行输入,这样可以处理包含空格的句子。

    遍历字符:使用范围for循环遍历字符串中的每个字符 c。

    检查并转换字符:

    使用 isupper(c) 检查是否为大写字母,如果是,使用 tolower(c) 转换为小写字母。

    使用 islower(c) 检查是否为小写字母,如果是,使用 toupper(c) 转换为大写字母。

    输出结果:处理完所有字符后,输出转换后的字符串。

    这种方法确保了对每个字母进行精确的大小写转换,同时保留其他字符不变,满足了题目要求。

    • 1

    信息

    ID
    2581
    时间
    1000ms
    内存
    256MiB
    难度
    5
    标签
    递交数
    13
    已通过
    7
    上传者