两个方法:
一个是大写变小写,小写变大写:
‘A' 的ASCII是65 ’a‘是97
也可以直接使用s[i] - 'A' + 'a' 的方法 大学变小写;
s[i] - 'a' + 'A'小写变大写;
一个是如何划分字符串以空格划分分开:
记录索引,依次遍历字符串,定义一个j 记录到空格的地方
class Solution {
public:
string trans(string s, int n) {
// write code here
if (n == 0)
return s;
reverse(s.begin(), s.end());
string res;
for (int i = 0; i < n; i++) {
//大小写转换
if (s[i] <= 'Z' && s[i] >= 'A')
res += s[i] - 'A' + 'a';
else if (s[i] >= 'a' && s[i] <= 'z')
res += s[i] - 'a' + 'A';
else
//空格直接复制
res += s[i];
}
for(int i = 0; i < n; i++)
{
int j = i;
while(j < n && res[j] != ' ')
{
j++;
}
reverse(res.begin()+i,res.begin()+j);
i = j;
}
return res;
}
};