【题目链接】
【题目考点】
1. 字符串
2. 大小写转换
'a’的ASCII码是97,'A’的ASCII码是65,同一字母的大小写字母的ASCII码差值为32。小写转大写:减32;大写转小写:加32。
【题解代码】
解法1:使用字符数组
#include <bits/stdc++.h>
using namespace std;
int main()
{
char s[105];
cin.getline(s, 105);//读入带空格的字符串
int len = strlen(s);
for(int i = 0; i < len; ++i)
{
if(s[i] >= 'a' && s[i] <= 'z')//如果s[i]是小写字母
s[i] -= 32;//变为大写
else if (s[i] >= 'A' && s[i] <= 'Z')//如果s[i]是大写字母
s[i] += 32;//变为小写
}
cout << s;
return 0;
}
解法2:使用string类 <cctype>函数
#include <bits/stdc++.h>
using namespace std;
int main()
{
string s;
getline(cin, s);
for(int i = 0; i < s.length(); ++i)
{
if(islower(s[i]))//如果s[i]是小写字母
s[i] = toupper(s[i]);//变为大写
else if (isupper(s[i]))//如果s[i]是大写字母
s[i] = tolower(s[i]);//变为小写
}
cout << s;
return 0;
}