计算机历年考研复试上机题------反序输出

偶遇清华大学的一道水题
题目传送门

题目描述
输入任意4个字符(如:abcd), 并按反序输出(如:dcba)
输入描述:
题目可能包含多组用例,每组用例占一行,包含4个任意的字符。
输出描述:
对于每组输入,请输出一行反序后的字符串。
具体可见样例。
示例1
输入
Upin
cvYj
WJpw
cXOA
输出
nipU
jYvc
wpJW
AOXc

这道题总的来说没有什么难度,逼近已经告诉我们字符串的长度就只有4个字节,我们直接输出就行了。下面的代码是我们最容易想到的当然也是这道题的最简单的解。
方案一:

#include<iostream>
using namespace std;
int main()
{
    char str[10];
    while (~scanf("%s", str))
    {
        for (int i = 3; i >= 0; i--)
        {
            printf("%c",str[i]);
        }
        printf("\n");
    }
    return 0;
}

当然我们这里也可以用string的迭代器来处理这道题
方案二

#include<iostream>
#include<string>
using namespace std;
int main()
{
    string str;
    while (cin>>str)
    {
        //创建一个string的迭代器
        string::iterator iter = str.end();
        while (iter != str.begin())
        {
            iter--;
            cout << *iter;
        }
        cout << endl;
    }
    return 0;
}

最后我们可以用C++ algorithm 类里面的一个库函数来处理这个问题
方案三:

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
    string str;
    while (cin>>str)
    {
    //颠倒对应的地址区域内的成员的位置
        reverse(str.begin(), str.end());
        cout << str << endl;
    }
    return 0;
}

此时再看这篇博客的你,对此还有什么好的方法吗?交流一哈!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值