《ACM程序设计》-problem J -替换字符

    xiaoxiao2021-03-25  135

    题意:输入一个整数N,后面N行每行输入一个字符串,字符串中的每个字母由它的下一个字母替换,‘Z'由'A'替换。

    输入:整数N,后面N行每行一串字符

    输出:每行输出替换后的字符,有前缀。

    解题思路:因为有了N的限制,只需要依次输入每个字符串然后再进行替换再依次输出就好了。可以设置一个字符数组进行操作也可以设置string类来操作。

    代码:

    #include <bits/stdc++.h>

    using namespace std;

    int main()

    {

        string a;

        int i=1,n;

        cin>>n;

        for(;i<=n;i++)

        {

            cin>>a;

            for(int b=0;b<a.size();b++)//确定字符串的长度,否则限制条件错了会造成溢出或者缺少字母。

                if(a[b]=='Z')

                a[b]='A';

                else

                    a[b]+=1;

                cout<<"String #"<<i<<endl<<a<<endl<<endl;

    }

        return 0;

    }

     

    注意:个人感觉这种题最重要的不是替换问题,而是数组有效长度是否限制合理的问题,在数组有效长度之外的存储单元都是随机值,如果数组溢出会发生一些未知错误。

    Sample Input

    2 HAL SWERC

    Sample Output

    String #1 IBM

    String #2 TXFSD

    转载请注明原文地址: https://ju.6miu.com/read-7174.html

    最新回复(0)