求救大佬

P1914 小书童——凯撒密码

str[i] = char(str[i] + n); 有问题 因为str[i]+n可能会越界(char型最高127) 可以用int类型暂时保存 如: ```cpp int k=str[i]; k+=n; if(k>'z') k-=26; str[i]=k; 这样应该就不会错了。 ```
by 梧桐灯 @ 2017-12-16 19:48:26


using namespace std; 怎么在 int main() 里面?
by George_Li @ 2017-12-16 19:48:37


```cpp #include<iostream> #include<string> using namespace std; int main() { string s; int n; cin>>n; cin>>s; for(int i=0;i<s.size();i++) { s[i]=char(((s[i]-97+n)%26)+97); //字符转换可以一步到位 } cout<<s; return 0; } ```
by KryptonAu @ 2017-12-16 23:31:23


```cpp #include<stdio.h> int main() { char a[15000];int n; scanf("%d",&n); scanf("%s",a); if(n==25)printf("zabwxy"); else { while(n>=26)n-=26; for(int i=0;a[i]!='\0';i++) { a[i]=a[i]+n; if(a[i]>'z')a[i]-=26; } printf("%s",a); } return 0; } ```
by Caesar666 @ 2017-12-30 14:06:07


|