鉴于此C字符串:
unsigned char *temp = (unsigned char *)[@"Hey, I am some usual CString" UTF8String]
如何将“通常”替换为“其他”来获取:“嘿,我是其他CString”。
出于性能原因,我无法使用NSString
个函数(replaceCharactersInRange
/ replaceOccurencesOfString
等)。我必须将它全部保持在低水平,因为我将要处理的字符串碰巧超过5MB,因此替换(将要进行大量替换)在iOS设备上花费大约10分钟。
答案 0 :(得分:1)
Objective-C是C上的一层薄层。 如果您需要使用本机C字符串,请继续操作。
这个
What is the function to replace string in C?
似乎很好地解决了你的问题。
答案 1 :(得分:0)
UTF8String
返回的C字符串是const。您无法通过将其转换为非const字符串并改变字节来安全地更改它。因此,唯一的方法是创建一个副本。
如果你真的有理由使用NSString
作为源,那么对原始字符串进行转换可能要快得多。
如果您想获得更好的答案,以帮助您加快您的特殊情况,您应该提供更多信息。如何创建原始字符串,搜索/替换字符串的数量和大小等等。