【c++】求助!没有输出……

P1914 小书童——凯撒密码

ZRCx @ 2019-08-30 18:04:16

#include<bits/stdc++.h>
using namespace std;
string cha,now;
int n,o;
int main()
{
    cin>>n>>cha;
    for(int i=0; cha[i]!='\0'; i++)
    {
        o=(cha[i]-'a'+n)%26;
        now[i]=o+'a';
    }   
    cout<<now;

    return 0;
 } 

by t162 @ 2019-08-30 18:06:00

我可以帮你改到有输出:

#include<bits/stdc++.h>
using namespace std;
string cha,now;
int n,o;
int main()
{
    cin>>n>>cha;
    for(int i=0; cha[i]!='\0'; i++)
    {
        o=(cha[i]-'a'+n)%26;
        now[i]=o+'a';
    }   
    cout<<now;
    puts("hello, world");
    return 0;
 } 

by t162 @ 2019-08-30 18:09:12

正经了

int main()
{
    cin>>n>>cha;
-    for(int i=0; cha[i]!='\0'; i++)
+   for(int i=0; i<cha.size(); i++)
    {
        o=(cha[i]-'a'+n)%26;
-        now[i]=o+'a';
+       now.push_back(o+'a');
    }   
    cout<<now;

by 反手for循环 @ 2019-08-30 18:11:08

@Bambusoideae hhhhh.

@ZRCx for循环那边改下应该可以。


by ZRCx @ 2019-08-30 18:26:06

@Bambusoideae 过了!感谢dalao! 但为什么之前for循环中的cha[i]!='\0'就不太对呢?字符串存储的最后一位不是'\0'吗?

还有就是。now.push_back(o+'a')是啥(只在队列中看到过这样的)……蒟蒻瑟瑟发抖


by t162 @ 2019-08-30 18:28:58

@ZRCx string的最后一位并非'\0'。


by t162 @ 2019-08-30 18:33:38

now.push_back(c)表示将c放到now末尾


by Smile_Cindy @ 2019-08-30 18:33:57

@ZRCx

还可以这么改

#include<bits/stdc++.h>
using namespace std;
string cha,now;
int n,o;
int main()
{
    cin>>n>>cha;
    now=cha;
    for(int i=0; cha[i]!='\0'; i++)
    {
        o=(cha[i]-'a'+n)%26;
        now[i]=o+'a';
    }   
    cout<<now;

    return 0;
 } 

by ZRCx @ 2019-08-30 21:00:51

@Bambusoideae 原来是这样,感谢!


by ZRCx @ 2019-08-30 21:03:51

@Alpha 惊!为什么一个 now=cha 有如此的魔力……


|