• Problem F: 重载字符的加减法


    Description

    定义一个字符类Character,只有一个char类型的数据成员。

    重载它的+、-、<<和>>运算符,其中+、-的第二个操作数是int类型的整数n。“+”用于返回以当前字符之后的第n个字符为属性值的对象,“-”用于返回当前字符之前的第n个字符为属性值的对象。如样例所示。

    Input

    第1行N>0表示测试用例个数。

    每个测试用包括1个字符(小写英文字母)和1个int类型的整数。

    Output

    输出有N行,每行输入对应一行输出,每行输出包括对应输入字符之后的第n个字符,以及该字符之前的第n个字符。如样例中第2个用例输入字符是“a”,整数是“1”,那么“a”之后的第1个字符是”b“,"a"之前的第1个字符是”z“;注意:输入的整数可能是负数。

    Sample Input

    3 a 0 a 1 a -1

    Sample Output

    a a b z z b

    HINT

    Append Code

    #include<iostream>
    using namespace std;
    class Character
    {
    private:
        char ch;
        int in;
    public:
        char operator+(int n)
        {
            //char是小一号的int
            int c=ch+n;//小变大,用int解决了asc不可负;注:ch不加单引号
            if(c>'z')//减一堆等价%
                c%=26;
            while(c<'a')//负数取余还是负数
                c+=26;
            return c;
        }
        char operator-(int n)
         {
            int c=ch-n;
            if(c>'z')
                c%=26;
            while(c<'a')
                c+=26;
            return c;
        }
        friend ostream& operator<<(ostream& os,const Character& a)
        {
            os<<a.ch;
            return os;
        }
        friend istream& operator>>(istream& is,Character &a)
        {
            is>>a.ch;
            return is;
        }
    };
    int main()
    {
        int cases, data;
        Character ch;
        cin>>cases;
        for (int i = 0; i < cases; i++)
        {
            cin>>ch;
            cin>>data;
            cout<<(ch + data)<<" "<<(ch - data)<<endl;
        }
    }

  • 相关阅读:
    Element-UI中Upload上传文件前端缓存处理
    Puppeteer前端自动化测试实践
    javascript-高级用法
    什么是闭包?闭包的优缺点?
    浅谈网站性能之前端性能优化
    2019前端面试题汇总(主要为Vue)
    从官网学习Node.js FS模块方法速查
    这才是官方的tapable中文文档
    面试官问:JS的this指向
    开启梦幻般的webrtc之旅
  • 原文地址:https://www.cnblogs.com/TogetherLaugh/p/6623492.html
Copyright © 2020-2023  润新知