替补Cypher

时间:2013-12-07 15:12:31

标签: c++

我有这个问题的问题我不知道我应该做什么我的代码真正工作,但我不知道为什么我得到错误的答案我不要当我的输入应该结束直到文件结束????你可以帮我解决我的问题,谢谢这里是问题的链接。 http://sharecode.ir/section/problemset/problem/2124。 我的代码:

#include <iostream>
#include <string>
#include <cstdio>
using namespace std;
int main()
{
    string alfa,alfa2,word;
    cin>>alfa;
    cin>>alfa2;
    cout<<alfa2<<endl;
    cout<<alfa<<endl;
    cin.ignore();
    while(getline(cin,word))
    {
        for(int i=0 ; i<word.size() ; i++)
        {
            bool cheak =false;
            for(int j=0 ; j<alfa.size() ; j++)
            {
                if(word[i] == alfa[j])
                {
                    printf("%c",alfa2[j]);
                    cheak = true;
                    break;
                }
            }
            if(cheak == false)
                printf("%c",word[i]);
        }
        printf("\n");
    }
}

2 个答案:

答案 0 :(得分:3)

输入的第一行可能有一个空格字符。

使用此方法:

string alfa,alfa2,word;

getline(cin, alfa);
getline(cin, alfa2);
cout<<alfa2<<endl;
cout<<alfa<<endl;

cin.ignore()放入代码中:)

答案 1 :(得分:1)

我认为'错误'如下:

在阅读alpha2之前,您正在输出alphatext。完成阅读所有输入后,您应该开始输出。

注意:这不是错误,但在线评判可能会拒绝它,因为它遵循固定顺序。