sanxin @ 2021-11-07 13:28:12
using namespace std;
int main(){
char juruo[51];
int n,huang;
cin>>n;
scanf("%s/n",juruo);
huang=strlen(juruo);
for(int i=0;i<huang;i++)
{
for(int g=0;g<n;g++){
juruo[i]++;
if(juruo[i]=='z')
juruo[i]='a';
}
}
cout<<juruo;
}
by _l_l_l_l_l_ @ 2021-11-07 13:51:16
scanf("%s/n",juruo);
是啥?不是\n
吗?
by __KrNalty__ @ 2021-11-07 13:53:20
注意
这里每一个字符都是应该先判断是不是z
在进行++
,并且如果当前字母为z
,则应该变为a的前一个字符也就是'a' - 1
而不是'a'
。
#include <bits/stdc++.h>
using namespace std;
int main(){
char juruo[51];
int n,huang;
cin>>n;
scanf("%s/n",juruo);
huang=strlen(juruo);
for(int i=0;i<huang;i++)
{
for(int g=0;g<n;g++){
if(juruo[i]=='z')
juruo[i]='a' - 1;
juruo[i]++;
}
}
cout<<juruo;
}
还有下次这种问题可以自己找出来的尽量自己找出来,别老发帖,也可以下载数据之类的。
by __KrNalty__ @ 2021-11-07 13:54:19
@sanxin
by __KrNalty__ @ 2021-11-07 13:55:16
可以/n
的好像,虽然我用的是\n
by Ak117 @ 2021-11-12 16:58:26
#include <cstdio>
#include <cstring>
bool c[50];
int main(){
char a[51];
int b;
scanf("%d%s",&b,a);
int l=strlen(a);
for(int i=0;i<l;i++){
if(a[i]>='A'&&a[i]<='Z'){
c[i]=0;
}
if(a[i]>='a'&&a[i]<='z'){
c[i]=1;
a[i]-='a'-'A';
}
a[i]+=b;
if(a[i]>'Z'){
a[i]-=26;
}
if(c[i]){
a[i]+='a'-'A';
}
}
printf("%s",a);
return 0;
}
氧化还原法(首创)
1.用c数组记大小写
2.转大写
3.移位
4.还原大小写