하위 문자열의 발생 횟수를 확인하는 방법으로 적합합니까? 더 이상 효율적으로 만들 수 있습니까? NSString
에서 C 문자열로 이동하려면 어떤 인코딩을 사용해야합니까?문자열의 하위 문자열 발생 횟수
while 문에서 ()!=NULL
에 대해 100 % 확신하지는 않습니다. 정상적으로 작동하는 것으로 보이고 더 이상 발생하지 않으면 while 루프가 중단됩니다.
- (NSUInteger)occurenceOfString:(NSString *)substring {
const char *substr = [substring cStringUsingEncoding:NSUTF8StringEncoding];
const char *selfstr = [self cStringUsingEncoding:NSUTF8StringEncoding];
unsigned long substrlen = strlen(substr);
NSUInteger count = 0;
char * ptr;
while ((ptr = strstr(selfstr, substr)) != NULL && substr != '\0') {
count++;
substr += substrlen + *ptr;
}
return count;
}
(자체적으로 검색되는 문자열이므로 카테고리 방법입니다.)
이 http://stackoverflow.com/questions/2166809/number-of-occurrences-of-a-substring-in-an-nsstring NSUTF8StringEncoding 비슷 오른쪽 부호화된다. – Jano