【发布时间】:2021-12-04 06:09:59
【问题描述】:
我正在使用 UCharIterators 在 C 中的 unicode 字符串上编写 KMP 子字符串搜索算法,我面临的问题是我需要通过迭代器比较值并且比较应该标准化,而所有 ICU colls 都吸收字符串而不是单个字符。
UCharIterator first_iter, second_iter
uiter_setUTF8( &first_iter, needle_str, n_needle_bytes);
uiter_setUTF8(&second_iter, needle_str, n_needle_bytes);
...
if (firts_iter.current(&first_iter) != second_iter.current(&second_iter)) {
...
当前条件在“a”和“ä”上失败,而我也不想要它。 我不喜欢预标准化的想法,因为它需要 O(n + m) 额外的内存(据我所知,ICU 没有就地执行它的功能)
【问题讨论】: