0

给定这个 C 字符串:

unsigned char *temp = (unsigned char *)[@"Hey, I am some usual CString" UTF8String]

如何将“通常”替换为“其他”以获得:“嘿,我是其他一些 CString”。

出于性能原因,我不能使用NSString函数(replaceCharactersInRange/replaceOccurencesOfString等)。我必须将其保持在低水平,因为我要处理的字符串恰好超过 5MB,因此在 iOS 设备上替换(会有很多替换要做)大约需要 10 分钟。

4

2 回答 2

1

Objective-C 只是 C 的一个薄层。如果您需要使用原生 C 字符串,请继续执行。

这个

在C中替换字符串的功能是什么?

似乎很好地解决了您的问题。

于 2013-06-25T13:35:09.843 回答
0

返回的 C 字符串UTF8String是 const。您不能通过将其转换为非常量字符串并改变字节来安全地更改它。因此,唯一的方法是创建一个副本。

如果您真的有理由使用 anNSString作为源,那么对原始字符串进行转换可能会快得多。

如果您想获得一个更好的答案来帮助您加快您的特殊情况,您应该提供更多信息。您如何创建原始字符串,搜索/替换字符串的数量和大小等。

于 2013-06-25T14:35:07.117 回答