2013-06-25 3 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입니다. 비 const 문자열로 캐스팅하고 바이트를 변경하여 안전하게 변경할 수 없습니다. 따라서이를 수행하는 유일한 방법은 사본을 작성하는 것입니다.

원래 NSString을 소스로 사용하는 이유가 있다면 원본 문자열을 변환하는 것이 훨씬 빠릅니다.

특수 사례의 속도를 높이는 데 도움이되는 더 나은 답변을 얻으려면 몇 가지 추가 정보를 제공해야합니다. 어떻게 원래의 문자열을 만드나요? 검색/대체 문자열의 수와 크기는 어떻게 되나요?