2013-06-25 35 views
0

鑑於這種C字符串替換字符:在C字符串

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

我怎麼能代替「正常」與「其他」來獲得:「嘿,我是一些其他的CString」。

出於性能原因,我不能使用NSString函數(/replaceOccurencesOfString等)。我必須把它全部保持在低水平,因爲我要處理的字符串恰好超過了5MB,因此iOS設備上的替換(需要做很多替換)大約需要10分鐘。

回答

1

Objective-C是一個超薄的C層。 如果您需要使用本地C字符串,請繼續操作。

What is the function to replace string in C?

似乎爲解決你的問題相當好。

+0

不幸的是,在這個問題中提供的功能似乎並沒有取代任何東西。破碎? –

+1

沒關係,我在接受的答案下找到另一個。這個工作正常。謝謝。 –

+0

這應該是一條評論。 –

0

UTF8String返回的C字符串是const。您不能通過將其轉換爲非常量字符串並改變字節來安全地更改它。所以唯一的方法就是創建一個副本。

如果您確實有理由使用NSString作爲源,那麼對原始字符串進行轉換可能會快得多。

如果你想得到更好的答案,可以幫助你加快你的特殊情況,你應該提供更多的信息。你如何創建原始字符串,搜索/替換字符串的數量和大小是多少等等。