将当前字符ASCII码减去'a'值后加3,加的结果求余26,最后再加上'a'就行了
#include <iostream>
using namespace std;
int main()
{
char s[100];
int i=0;
gets(s);
while(s[i] != 0)
{
s[i] = (s[i] - 'a' + 3) % 26 + 'a';
i++;
}
cout<<s;
return 0;
}
#include <iostream>
using namespace std;
int main()
{
char buf[100];
int i=0;
gets(buf);
while (buf[i])
{
buf[i] = buf[i] + 3;
if(buf[i]>'z')
buf[i] = buf[i]-'z'+'a'-1;
i++;
}
cout << buf<<endl;
return 0;
}
#include <iostream>
using namespace std;
int main(){
//首先解决输入任意长度的字符串然后按回车进行编译的问题,这里使用getchar()来处理
char c;
//不要吝啬加括号,因为优先级可能导致出现问题
while((c=getchar())!='\n'){
if((c>='A'&&c<='V')||(c>='a'&&c<='v')){
c=c+4;
cout<<c;
}else if((c>='W'&&c<='Z')||(c>='w'&&c<='z')){
c=c-22;
cout<<c;
}
else{
cout<<c;
}
}
cout<<endl;
return 0;
}