• POJ1298-字符串转换-水题


    题意:

    转换字母,水题。

    这些题目代码一样,直接用就行。

    POJ1298、HDU1048、OpenJ_Bailian1298、ZOJ1392、UVALive2540。

    (注意:后两个OJ不能用gets,用  getline(cin,s)   读入字符串string即可。)

    gets读入AC代码:

     1 #include<iostream>
     2 #include<stdio.h>
     3 #include<map>
     4 #include<algorithm>
     5 #include<queue>
     6 #include<stack>
     7 #include<cmath>
     8 #include<string.h>
     9 
    10 using namespace std;
    11 #define men(p,b) memset(p,b,sizeof(p))
    12 #define inf 0x3f3f3f3f
    13 typedef long long ll;
    14 
    15 char s[110];
    16 
    17 int main()
    18 {
    19     while(~scanf("%s",s))
    20     {
    21         if(!strcmp("ENDOFINPUT",s))
    22             break;
    23         getchar();
    24         gets(s);
    25         int len=strlen(s);
    26         for(int i=0;i<len;i++)
    27         {
    28             if(s[i]<'A'||s[i]>'Z')
    29                 continue;
    30             s[i]-=5;
    31             if(s[i]<'A')//<0
    32                 s[i]+=26;
    33         }
    34         printf("%s
    ",s);
    35         scanf("%s",s);
    36         //gets(s);
    37     }
    38     return 0;
    39 }
    View Code

    getline读入AC代码:

     1 #include<iostream>
     2 #include<stdio.h>
     3 #include<map>
     4 #include<algorithm>
     5 #include<queue>
     6 #include<stack>
     7 #include<cmath>
     8 #include<string.h>
     9 
    10 using namespace std;
    11 #define men(p,b) memset(p,b,sizeof(p))
    12 #define inf 0x3f3f3f3f
    13 typedef long long ll;
    14 
    15 
    16 int main()
    17 {
    18     string s;
    19     while(getline(cin,s))
    20     {
    21         if(s=="ENDOFINPUT")
    22             break;
    23         //getchar();
    24         getline(cin,s);
    25         int len=s.length();
    26         for(int i=0;i<len;i++)
    27         {
    28             if(s[i]<'A'||s[i]>'Z')
    29                 continue;
    30             s[i]-=5;
    31             if(s[i]<'A')//<0
    32                 s[i]+=26;
    33         }
    34         cout<<s<<endl;
    35         getline(cin,s);
    36     }
    37     return 0;
    38 }
    View Code

    注意:

    getline接受空格,cin遇到空格会终止;

    getline和gets在回车之后需要getchar()吸收回车,但是getline(cin,s);getline(cin,ss);之间不用。

    比如:

    int n;
    cin>>n;
    getchar();
    gets(s);

    但是我奇怪的是:为什么输入n之后s无法输入了???,加了getchar就可以正常输入输出。

  • 相关阅读:
    常用Git代码托管服务分享
    .NET中操作IPicture、IPictureDisp
    Git学习笔记与IntelliJ IDEA整合
    螺旋队列问题
    杂题3道
    .NET 配置文件简单使用
    C++之Effective STL
    不容易理解的 lock 和 merge
    状态模式
    观察者模式
  • 原文地址:https://www.cnblogs.com/OFSHK/p/12919130.html
Copyright © 2020-2023  润新知