1 条题解
-
1
水题要解决这个问题,我们需要将给定句子中的每个字母进行大小写转换,即大写字母转换为小写字母,小写字母转换为大写字母,而其他字符(如空格、标点符号等)保持不变。以下是解决这个问题的步骤:
方法思路 遍历每个字符:我们需要逐个检查句子中的每个字符。
检查字符类型:对于每个字符,判断它是否是大写字母或小写字母。
转换大小写:如果是大写字母,就将其转换为小写字母;如果是小写字母,就将其转换为大写字母。
处理非字母字符:其他字符直接保留原样。
输出结果:将所有处理后的字符组合成新的字符串并输出。
解决代码
#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
- 上传者