替换C字符串中的字符

时间:2013-06-25 13:28:54

标签: ios string nsstring cstring

鉴于此C字符串:

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

如何将“通常”替换为“其他”来获取:“嘿,我是其他CString”。

出于性能原因,我无法使用NSString个函数(replaceCharactersInRange / replaceOccurencesOfString等)。我必须将它全部保持在低水平,因为我将要处理的字符串碰巧超过5MB,因此替换(将要进行大量替换)在iOS设备上花费大约10分钟。

2 个答案:

答案 0 :(得分:1)

Objective-C是C上的一层薄层。 如果您需要使用本机C字符串,请继续操作。

这个

What is the function to replace string in C?

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

答案 1 :(得分:0)

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

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

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