假设我从API中获得了几百行文本作为字符串(C ++),并且在这些数据中加入了德语变音符号,例如ä或ö,需要用ae和oe替换。 我熟悉编码(好吧,我读过http://www.joelonsoftware.com/articles/Unicode.html)并且解决问题很简单(基本上,搜索字符串,删除字符并添加其他2个)。
但是,我对C ++的了解还不够快。我刚刚偶然发现了StringBuilder(http://www.codeproject.com/Articles/647856/4350-Performance-Improvement-with-the-StringBuilde),它提高了速度,但我很好奇是否有更好或更聪明的方法来做到这一点?
答案 0 :(得分:4)
如果您必须在如此小的规模上提高效率,请考虑分两个阶段进行更换:
1
添加到每个普通字符的计数中;对于ä或ö等字符,请添加2
。答案 1 :(得分:2)
当它以UTF-8编码时,德语变音符号在unicode中都是双字节值,它们的替换也是ae
或oe
。因此,当您使用char []而不是字符串时,您不必重新分配任何内存,只需在迭代char []时替换字节。