读书人

半角字符和全角字符转换算法的实现?解

发布时间: 2012-03-05 11:54:02 作者: rapoo

半角字符和全角字符转换算法的实现?
一个字符串中,既有全角字符也有半角字符,如果高效地把其中的半角转全角,或者全角转半角。

字符串的编码格式假设为GB2312。

[解决办法]
除了查表,还有什么办法

[解决办法]
首先,半角字符是从0-127,如果是大于127的,是全角字符的前面半个字符.
首先,需要开辟一块内存,长度是现在长度的2倍.

然后从原始字符中读取一个字节,判断是0-127还是大于127.
0-127, 从映射表得到对应的全角字符,然后写到目标字符串.
128-255,拷贝当前字节和下一个直接到目标字符串,并偏移2个字符.

O(n)的算法,很快的.

读书人网 >软件架构设计

热点推荐