POJ 2975 Caesar密码 解题报告

POJ 2975 Caesar密码 解题报告

编号:2975

 

考查点:字符串处理

 

思路:超级水题,字符映射关系而已,问题是读入带空格的字符有点麻烦..

 

提交情况:一直在读入一行数据的方法,gets()和cin.getline()那纠结.后来出现一个判断的问题,换成gets()方法后就直接AC

 

Source Code

 //POJ Grids 2975

#include <iostream>
#include 
<string.h>
using namespace std;

int main()
{
    
char ch[201];
    memset(ch,
0,201*sizeof(char));
    
char flag[20];
    memset(flag,
0,20*sizeof(char));
    gets(flag);
    
while (strcmp(flag,"START")==0)
    {
        gets(ch);
        
char* pch = ch;
        
while (*pch)
        {
            
if (*pch>='A'&&*pch<='Z')
            {
                
*pch = (*pch-'A'-5+26)%26 + 'A';
            }
            pch
++;
        }
        cout
<<ch<<endl;
        gets(flag);
        gets(flag);
    }
    
return 0;
}

总结:读入一行带空格的字符串最好用gets(),排除空格和,的判断导致了WA,应使用在AZ里面的判断。书上继续使用散列映射,我用的模除,性能啥的也差不多应该。

 

 

                                                       By   Ns517

                                                      Time 09.01.22

posted @ 2009-01-22 17:09  端木  阅读(611)  评论(0编辑  收藏  举报