以下函数将在其间生成一个'\x'
的字符串,
string GetHexEncode(string hexstring){
string swap = "\\x";
string h = "\\x";
int si = hexstring.length();
for (int i=0; i<hexstring.length(); i++)
{
if (i%2==0){
swap+=hexstring.at(i);
}
else
{
swap+=hexstring.at(i)+h;
}
}
return swap;
}
有时,程序输出以下内容:
\x45\x39\xD3\x5B\x4F\xEA\x6F\x3C\xBC\x1B\xA0\xF4\xE7\x41\xE5\x8
\x45\x39\xD3\x5B\x4F\xEA\x6F\x3C\xBC\x1B\xA0\xF4\xE7\x41\xE5\x
如果发生这种情况,有什么方法可以将最后一部分改为:
\x45\x39\xD3\x5B\x4F\xEA\x6F\x3C\xBC\x1B\xA0\xF4\xE7\x41\xE5
答案 0 :(得分:2)
以空swap
开头,并附加h
+个数字,而不是在结尾附加\x
。
另外,您应该在开始结果之前在swap
中预先分配足够的空间,因为您知道之前结果的最终长度。这样可以节省字符串的重新分配。