新手守护
#include <iostream>
#include <string>
#include <cstdio>
using namespace std;
int main()
{
string a;
cin>>a;
for(int i=0;i<a.size();i++)
{
a[i]+=32;
}
for(int i=0;i<a.size();i++)
{
if(a[i]>='c'&&a[i]<='z'||a[i]>='C'&&a[i]<='Z')
a[i]-=2;
else a[i]+=24;
}
for(int i=a.size()-1;i>=0;i--)
{
cout<<a[i];
}
return 0;
}
输入:AbcD
输出:b淑y(错误的)
初级天翼
for(int i=0;i<a.size();i++)
{
a[i]+=32;
}
题目说了,大写字符变小写字符,小写字符变大写字符。
你写字符大变小写字符了,小写字符呢?(输出一堆乱码了,呵呵)。
97+32=? 133? 是什么字符啊?
应该加一个判断:
是大写字符,变小写字符。
是小写字符,变写字符。
a[i]-=2;
else a[i]+=24;
这也错了。
字符是有ASCLL码的,这样的话,a[i]就是一个数了,就不是一个字符了。
应该是:
----=char(----)才对(这只是格式,具体请大佬自主修改)。
100AC,
新手天翼
你这思路不对:
string a,b;
getline(cin,a);
for(int i=0;i<a.size();++i)
{
if(a[i]>='a'&&a[i]<='z')
a[i]-=32;
else if(a[i]>='A'&&a[i]<='Z')
a[i]+=32;
}
for(int i=0;i<a.size();++i)
{
if(a[i]=='a'||a[i]=='b'||a[i]=='A'||a[i]=='B')
a[i]+=24;
else
a[i]-=2;
}
for(int i=a.size()-1;i>=0;--i)
{
cout<<a[i];
}
规律是 AbcD aBCd yZAb bAZy
徐云皓在2018-03-18 18:57:31追加了内容
getline不是C库函数,而是gcc的扩展定义或者C++库函数。它会生成一个包含一串从输入流读入的字符的字符串,直到以下情况发生会导致生成的此字符串结束:1到文件结束,2遇到函数的定界符,3输入达到最大限度。
徐云皓在2018-03-18 18:58:16追加了内容
求采纳蟹蟹