水题,长度按7位存,当前字节最高位如果是1的话,后续还有记录长度的字节,没有了的话,后面就是真正的字串字节了,字串字节直接按16进制打印就行了
#include<cstdio>
using namespace std;
int main()
{
char s[3000000];
int T;
scanf("%d", &T);
getchar();
while (T--)
{
int c, len = 0;
while (true)
{
c = getchar();
if (c == '\n' || c == EOF)
break;
s[len++] = c;
}
if (len)
{
int temp = len;
while (temp)
{
int byte = temp % 128;
temp /= 128;
if (temp)
byte += 128;
printf("%02X", byte);
}
}
else
printf("%02X", 0);
for (int i = 0; i < len; i++)
printf("%02X", s[i]);
puts("");
}
return 0;
}