c++ - 为具有 1 和 2 字节字符的字符集实现退格

标签 c++ c algorithm

字符集有 1 和 2 字节字符。一个字节字符的第一位为 0。你刚才 不断累积缓冲区中的字符。假设在某个时候用户键入退格键,如何 你能有效地删除字符吗?

我想到的一个解决方案是不需要考虑单字节字符(它的最高有效位为 0),我们只需要考虑 2 字节字符以及如何将它与 1 字节区分开来字符。我想包括额外的位(比如 0)到 2 字节字符来区分它,但这会占用很多字符表示。

提出一个想法!

最佳答案

第一位是什么意思?
在 2 字节值 0xfade (0b1111101011011110) 中,第一位是 01 ?

无论如何,您可以安排以小端或大端格式写入值,以使“第一位”始终写入最后。通过仅检查写入的最后一个八位位组,您知道是删除 1 个还是 2 个八位位组。

关于c++ - 为具有 1 和 2 字节字符的字符集实现退格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7933067/

相关文章:

c++ - 从 C++ 列表中删除一次

c - 为什么将指针值加一不允许在该位置设置值?

c - strtok_s 如何标记一个 char*?

c - 函数返回值与预期不同

algorithm - Edmonds-karp 算法实际上是如何计算最短路径的?

c++ - 如何从 QWizardPage 运行 QThread 并访问 field()

c++ - 在 C++ 中,如何在一个参数中测试与 "|"组合的多个标志之一?

objective-c - 将 UIScrollView 中未缩放的 View 缩放到边界

algorithm - 递归下降相同前缀

c++ - 如何在 OpenCV 和 C++ 中找到图像中两个对象(点)之间的距离(以 m 和像素为单位)?