m****u 发帖数: 3915 | 1 给一堆string
如何encode它们到一个string
再decode它们恢复到这堆string
我看有说用xml, xml怎么做?
我更倾向于加一个特殊字符表示字符串的分隔,这个特殊字符应该怎么加才不会有问题
?(比如说原
string中就有这个字符,或者原string开头结尾有这个字符) |
p********7 发帖数: 549 | 2 先hash,找没出现过的char,作为分界
如果是unicode就好办多了,更容易找到 |
h**6 发帖数: 4160 | 3 两个方法,都不需要更改字符串原文:
1.在每个字符串前面加一个整数(四个字节)表示长度,分隔时走到该长度就自动停止,
缺点是即使取最后一个字符串也需要把所有字符串过一遍。
2.先串联字符串,在前面加上字符串数量和起始位置,共n+1个整数(4n+4字节),根据
相邻两个字符串的起始位置,很容易截出需要的字符串。
不知道有没有人研究过光荣LS12格式,其压缩后的字符串存储方法就和2差不多。 |
m****u 发帖数: 3915 | 4 第一个方法那个长度也要用字符形式表示啊
你怎么区别是实际串中的字符,还是长度?
第二个其实我也有同样疑问
【在 h**6 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 两个方法,都不需要更改字符串原文: : 1.在每个字符串前面加一个整数(四个字节)表示长度,分隔时走到该长度就自动停止, : 缺点是即使取最后一个字符串也需要把所有字符串过一遍。 : 2.先串联字符串,在前面加上字符串数量和起始位置,共n+1个整数(4n+4字节),根据 : 相邻两个字符串的起始位置,很容易截出需要的字符串。 : 不知道有没有人研究过光荣LS12格式,其压缩后的字符串存储方法就和2差不多。
|
t****a 发帖数: 1212 | 5 it is just a structure containing both length and structure. everyone should
know the first byte(int) should be the length of the first string.
it is not a traditional string and cannot be processed with any string
function such as strcpy.
【在 m****u 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 第一个方法那个长度也要用字符形式表示啊 : 你怎么区别是实际串中的字符,还是长度? : 第二个其实我也有同样疑问
|
p********7 发帖数: 549 | 6 其实用各种协议都是用头文件的,就是插入写不会出现的字符串。第二个方法确实可行 |
p********7 发帖数: 549 | 7 其实用各种协议都是用头文件的,就是插入写不会出现的字符串。第二个方法确实可行 |