字符集有 1 和 2 字节字符。一个字节字符的第一位为 0。你刚才 不断累积缓冲区中的字符。假设在某个时候用户键入退格键,如何 你能有效地删除字符吗?
我想到的一个解决方案是不需要考虑单字节字符(它的最高有效位为 0),我们只需要考虑 2 字节字符以及如何将它与 1 字节区分开来字符。我想包括额外的位(比如 0)到 2 字节字符来区分它,但这会占用很多字符表示。
提出一个想法!
最佳答案
第一位是什么意思?
在 2 字节值 0xfade
(0b1111101011011110
) 中,第一位是 0
或 1
?
无论如何,您可以安排以小端或大端格式写入值,以使“第一位”始终写入最后。通过仅检查写入的最后一个八位位组,您知道是删除 1 个还是 2 个八位位组。
关于c++ - 为具有 1 和 2 字节字符的字符集实现退格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7933067/