腾讯2017暑假实习笔试题-字符串编码

/*
腾讯2017暑假实习笔试题-字符串编码
输入:16的倍数的字符串
输出:编码后的结果

例子
输入:abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkl
输出:
00000010 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 abcdefghijklmnop
00000020 71 72 73 74 75 76 77 78 79 7a 61 62 63 64 65 66 qrstuvwxyzabcdef
00000030 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 ghijklmnopqrstuv
00000040 77 78 79 7a 61 62 63 64 65 66 67 68 69 6a 6b 6c wxyzabcdefghijkl
*/

#include <iostream>
#include <vector>
#include <string>
#include <map>

using namespace std;

int main()
{
    //打表
    vector<string> v(128, "");
    for (int i = 'a'; i <= 'z'; ++i)
    {
        char tmp[5];
        sprintf(tmp, "%02x", i);
        v[i] = tmp;
        //cout << v[i] << endl;
    }
    int index = 0;//先打印索引部分
    string in_str;
    cin >> in_str;
    while (in_str.size() >= 16)
    {
        string str = in_str.substr(0, 16);
        in_str = in_str.substr(16);
        char tmp[10];
        sprintf(tmp, "%08x", index);
        index += 16;
        cout << tmp << " ";//print index;

        for (auto i : str)
            cout << v[i] << " ";

        cout << str;

        cout << endl;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值